『壹』 java的集合
一、Set集合,其主要實現類有HashSet、TreeSet。存放對象的引用,不允許有重復對象。
通過java的equals()方法判別。如果有特殊需求須重載equals()方法。
1、HashSet(),調用對象的hashCode()方法,獲得哈希碼,然後再集合中計算存放對象的位置。通過比較哈希碼與equals()方法來判別是否重復。所以,重載了equals()方法同時也要重載hashCode()方法。
2、TreeSet(),繼承ShortedSet介面,能夠對集合中對象排序。默認排序方式是自然排序,但該方式只能對實現了Comparable介面的對象排序,java中對Integer、Byte、Double、Character、String等數值型和字元型對象都實現了該介面。
如果有特殊排序,須重載該介面下的compareTo()方法或通過Comparator介面的實現類構造集合。
二、List集合,其主要實現類有LinkedList、ArrayList,前者實現了鏈表結構,後者可代表大小可變的數組。List的特點是能夠以線性方式儲蓄對象,並允許存放重復對象。List能夠利用Collections類的靜態方法sort排序。sort(List list)自然排序;sort(List listm,Comparator comparator)客戶化排序。
三、Map集合,其主要實現類有HashMap、TreeMap。Map對值沒有唯一性要求,對健要求唯一,如果加入已有的健,原有的值對象將被覆蓋。HashMap類按照哈希演算法來存取鍵對象,可以重載equals()、hashCode()方法來比較鍵,但是兩者必須一致。TreeMap,可自然排序,也可通過傳遞Comparator的實現類構造TreeMap。
『貳』 java集合是什麼
Java集合是什麼:
Java 中的集合類庫可以幫助我們在程序設計中實現傳統的數據結構。
Java的集合類是一個用來存放對象的容器,有以下特點:
1、Java集合只能存放對象。加入添加了一個基本數據類型,會被自動裝箱後存入集合。
2、集合存放的是多個對象的引用,對象本身是在堆內存中的。
3、集合可以存放不同類型,不限數量的數據類型。
集合分三種:1、Set 2 、List 3、Map,下面進行具體介紹。
主要內容:
1)手寫ArrayList
2)手寫單鏈表
3)手寫LinkedList
4)手寫HashMap
5)手寫HashSet
6)最新並發集合類
學習目標:
1. 掌握手寫ArrayList
2. 掌握手寫單鏈表
3. 掌握手寫LinkedList
4. 掌握手寫HashMap
5. 掌握手寫HashSet
6. 理解最新並發集合類底層原理
視頻課程小結:
01_集合提升訓練_手寫ArrayList_get_size_isEmpty_自定義異常
02_集合提升訓練_手寫ArrayList_構造方法_add
03_集合提升訓練_手寫ArrayList_toString_iterator
04_集合提升循環_手寫單鏈表_get
05_集合提升訓練_手寫單鏈表_add_remove_toString
06_集合提升訓練_手寫LinkedList
07_集合提升訓練_手寫LinkedList_添加內存分配圖
08_集合提升訓練_HashMap的原理和代碼准備
09_集合提升訓練_手寫HashMap的put
10_集合提升訓練_手寫HashMap的get_toString
11_集合提升訓練_手寫HashSet
12_集合提升訓練_新一代並發集合類
『叄』 Java中「集合」是啥意思集合類的「集合」
在java語言提供的工具類里,一般集合指的是實現了Collection介面的類。
主要是Set、List、Queue
Collection介面方法如下
當然 還有很多很多,就不一一舉例了。
另外如果你願意完全可以定義自己的集合,說白了不就是按照自己的邏輯把對象放在一起么~~~一般實現存、取、排序 就OK了。
『肆』 JAVA集合
第一個程序是從迭代器裡面刪除對象,第二個是直接從Collection裡面刪的,在Iterator迭代過程中,是不可以修改集合元素的,跟增強for循環一樣,會把你正在遍歷的對象鎖住,只能讀取裡面的值,不能修改,直到循環結束
『伍』 java集合類,,,
java幾何類一般是四種,map集合,list集合,set集合,properity集合,常用的是map和list,map是鍵值對類型的集合,list是類似於數組類型的集合,按你的意思可以使用map集合類,學生信息可以看成是一個自定義類型 map<string,object> mp=new map<string,object>();
『陸』 java集合
集合就相當於你午飯的飯碗
Collection c=new HashSet(); // 我要一個大碗...
Collection<米飯> c=new HashSet<米飯>(); // 我要一個只能裝米飯的大碗,(不能裝菜, 也不能裝沙子);
回到你的問題,
aaa,bbb,ccc 相當於飯碗里裝的東西, 比如 aaa類型為米飯, bbb 類型為菜, ccc類型為沙子(就是喜歡吃帶沙子的米....).
Collection c=new HashSet(); // 你要一個大碗.. 可以裝任何東西的大碗.
相當於
Collection<東西> c=new HashSet<東西>();// 你要一個大碗.. 只要是東西就能放進去的大碗..
你程序寫的是a b c 都是String類型, 其實你可以往裡放數字, 枚舉 等其他的...
abc 你傳遞進去之前是字元類型,
it.next() 拿出來的是object , 然後你通過 (String)強制轉換成了String而已.
c 對外界來說它是Collection 實際上是HashSet . 就相當於 你對別人說 我吃的是菜, 但是你自己知道你吃的是豆芽菜. (別人不知道你吃的是豆芽菜)
『柒』 java中的集合有幾種
集合類是放在java.util.*;這個包里。集合類存放的都是對象的引用,而非對象本身,為了說起來方便些,我們稱集合中的對象就是指集合中對象的引用(reference)。引用的概念大家不會忘了吧,在前邊我們講數據類型時講的。
集合類型主要有3種:set(集)、list(列表)、map(映射)和Queue(隊列)。//隊列為jdk5中的加上的
(1) Set
集(set)是最簡單的一種集合,它的對象不按特定方式排序,只是簡單的把對象加入集合中,就像往口袋裡放東西。對集中成員的訪問和操作是通過集中對象的引用進行的,所以集中不能有重復對象。我們知道數學上的集合也是Set這個,集合裡面一定是沒有重復的元素的。
(2)List
列表(List)的主要特徵是其對象以線性方式存儲,沒有特定順序,只有一個開頭和一個結尾,當然,它與根本沒有順序的Set是不同的。它是鏈表嘛,一條鏈肯定有順序這個順序就不一定了。
(3)Map
映射(Map),這個在java里不是地圖的意思,其實地圖也是映射哈。它裡面的東西是鍵-值對(key-value)出現的,鍵值對是什麼呢?舉個例子,比如我們查字典,用部首查字法。目錄那個字就是鍵,這個字的解釋就是值。鍵和值成對出現。這樣說可以理解吧。這也是很常用的數據結構哦。
(4)Queue
在jdk5.0以前,通常的實現方式是使用java.util.List集合來模仿Queue。Queue的概念通過把對象添加(稱為enqueuing的操作)到List的尾部(即Queue的後部)並通過從List的頭部(即Queue的前部)提取對象而從 List中移除(稱為dequeuing的操作)來模擬。你需要執行先進先出的動作時可以直接使用Queue介面就可以了。
這4個東西,有時候功能還不太完善,需要有些子類繼承它的特性。Set的子介面有TreeSet,SortedSet,List的有ArrayList等,Map里有HashMap,HashTable等,Queue裡面有BlockingQueue等。我們來看看例子吧:
實踐: Set舉例
import java.util.*;
public class SetExample {
public static void main(String[] args) {
Set set = new HashSet(); //HashSet是Set的子介面
set.add("one");
set.add("second");
set.add("3rd");
set.add(new Integer(4));
set.add(new Float( 5.0F ));
set.add("second");
set.add(new Integer(4));
System.out.println(set);
}}
List舉例:
import java.util.*;
public class ListExample {
public static void main(String[] args) {
List list = new ArrayList();
list.add("one");
list.add("second");
list.add("3rd");
list.add(new Integer(4));
list.add(new Float( 5.0F ));
list.add("second");
list.add(new Integer(4));
System.out.println(list);
}}
Map舉例
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.io.FileReader;
public class MapExample {
public static void main(String[] args) throws java.io.FileNotFoundException {
Map word_count_map = new HashMap();
FileReader reader = new FileReader(args[0]);
Iterator words = new WordStreamIterator(reader);
while ( words.hasNext() ) {
String word = (String) words.next();
String word_lowercase = word.toLowerCase();
Integer frequency = (Integer)word_count_map.get(word_lowercase);
if ( frequency == null ) {
frequency = new Integer(1);
} else {
int value = frequency.intValue();
frequency = new Integer(value + 1);}
word_count_map.put(word_lowercase, frequency);
}
System.out.println(word_count_map);
}}
Queue舉例:
import java.io.IOException;
import java.io.PrintStream;
import java.util.LinkedList;
import java.util.Queue;
public class QueueTester {
public Queue<String> q; //發現了一個奇怪的語法,這個尖括弧是泛型聲明
public QueueTester() {q = new LinkedList<String>();}
public void testFIFO(PrintStream out) throws IOException {
q.add("First");
q.add("Second");
q.add("Third");
Object o;
while ((o = q.poll()) != null) {
out.println(o);}}
public static void main(String[] args) {
QueueTester tester = new QueueTester();
try { tester.testFIFO(System.out);
} catch (IOException e) {
e.printStackTrace(); } }}
『捌』 java有哪些集合
Java集合主要有四種,分別為:List列表、Queue隊列、Set集合、Map映射。
List列表:有序的,可重復的;
Queue隊列:有序,可重復的;
Set集合:不可重復;
Map映射:無序,鍵唯一,值不唯一。
『玖』 JAVA的集合類型有哪些
Java集合類型主要有3種:set(集)、list(列表)和map(映射)。
Collection、Set和List的區別如下:
Collection對象之間沒有指定的順序,允許有重復元素和多個null元素對象;它是Set和List介面的父類,是一種最通用型的集合介面;
Set各個元素對象之間沒有指定的順序,不允許有重復元素,最多允許有一個null元素對象;
List各個元素對象之間有指定的順序,允許重復元素和多個null元素對象;
『拾』 java集合類
排名次你自己搞定吧——30分只值這么多。
/*
一個班15個人,每個學生都有學號,姓名,英語成績,語文成績,數學成績。
要求:
1)每個人的成績在40到100分以內。學號從1開始排列,姓名隨意
2)將學生保存到Map集合中,按照KEY-->學號 VALUE--->學生
3)將全班的學生按三科總成績排名顯示出所有學生信息
*/
import java.util.*;
public class SaveStudentBai {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Map <int,FifteenStudent> fifMap = new HashMap <int,FifteenStudent> ();
FifteenStudent[] fifArray = new FifteenStudent[15];
for(int i=0;i<15;i++) {
// System.out.println("Enter ID!");
// int id = sc.nextInt();
//既然學號從1開始排列,那麼就這樣吧。少寫一個算一個,本人比較懶。o(╯□╰)o
int id = i+1;
System.out.println("Enter Name!");
String name = sc.next();
System.out.println("Enter English Score!");
int engScore = sc.nextInt();
System.out.println("Enter Chinese Score!");
int chiScore = sc.nextInt();
System.out.println("Enter Math Score!");
int matScore = sc.nextInt();
fifArray[i] = new FifteenStudent(id, name, engScore, chiScore, matScore);
fifMap.put(id,fifArray[i]);
}
}
}
class FifteenStudent {
int id;
String name;
int engScore;
int chiScore;
int matScore;
public FifteenStudent(int id,String name,int engScore,int chiScore,int matScore) {
this.id = id;
this.name = name;
this.engScore = engScore;
this.chiScore = chiScore;
this.matScore = matScore;
}
}