集合java
『壹』 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語言提供的工具類里,一般集合指的是實現了Collection介面的類。
主要是Set、List、Queue
Collection介面方法如下
當然 還有很多很多,就不一一舉例了。
另外如果你願意完全可以定義自己的集合,說白了不就是按照自己的邏輯把對象放在一起么~~~一般實現存、取、排序 就OK了。
『叄』 集合java代碼如何實現
java集合 Collection為父介面,包括list、set、map等常用。
list:有序,可重復
set:無序,不可重復
map:以鍵值對方式存在的,鍵唯一,值唯一
下面列舉一些開發中常用的:
1.List相關
List books = new ArrayList();
//向books集合中添加三個元素
books.add(new String("輕量級Java EE企業應用實戰"));
books.add(new String("瘋狂Java講義"));
books.add(new String("瘋狂Android講義"));
LinkedList books = new LinkedList();
//將字元串元素加入隊列的尾部(雙端隊列)
books.offer("瘋狂Java講義");
//將一個字元串元素加入棧的頂部(雙端隊列)
books.push("輕量級Java EE企業應用實戰");
2.set相關
HashSet books = new HashSet();
//分別向books集合中添加兩個A對象,兩個B對象,兩個C對象
books.add(new A());
books.add(new A());
LinkedHashSet books = new LinkedHashSet();
books.add("Java");
books.add("LittleHann");
System.out.println(books);
TreeSet nums = new TreeSet();
//向TreeSet中添加四個Integer對象
nums.add(5);
nums.add(2);
nums.add(10);
nums.add(-9);
3.map相關
Map map = new HashMap();
map.put("key1","lisi1");
map.put("key2","lisi2");
map.put("key3","lisi3");
map.put("key4","lisi4");
Hashtable ht = new Hashtable();
ht.put(new A(60000) , "瘋狂Java講義");
ht.put(new A(87563) , "輕量級Java EE企業應用實戰");
ht.put(new A(1232) , new B());
LinkedHashMap scores = new LinkedHashMap();
scores.put("語文" , 80);
scores.put("英文" , 82);
scores.put("數學" , 76);
TreeMap tm = new TreeMap();
tm.put(new R(3) , "輕量級Java EE企業應用實戰");
tm.put(new R(-5) , "瘋狂Java講義");
tm.put(new R(9) , "瘋狂Android講義");
WeakHashMap whm = new WeakHashMap();
whm.put(new String("語文") , new String("良好"));
whm.put(new String("數學") , new String("及格"));
whm.put(new String("英文") , new String("中等"));
『肆』 JAVA集合
第一個程序是從迭代器裡面刪除對象,第二個是直接從Collection裡面刪的,在Iterator迭代過程中,是不可以修改集合元素的,跟增強for循環一樣,會把你正在遍歷的對象鎖住,只能讀取裡面的值,不能修改,直到循環結束
『伍』 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;
}
}
『柒』 Java集合什麼意思
1、集合可以有List,vector等,其實map也是一個集合
2、這些集合有啥用呢,就好比你有一堆數據要存:
[name='張三' , age=20, address='北京']
[name='李四' , age=15, address='湖南']
[name='王五' , age=18, address='甘肅']等等,
這樣一條一條的數據你就能夠用集合來保存起來,放到一條集合中去
3、例如用list來保存,保存形式就如下:
list = {[name='張三' , age=20, address='北京'], [name='李四' , age=15, address='湖南'] , [name='王五' , age=18, address='甘肅']};
這樣的形式了,然後取值的時候你就可以根據list.get(i)來分別取值了。
4、如果要取到每一條裡面的屬性,那麼可以配合map或者存儲的是實體類對象,來分別取值就對了,非常的簡單且實用
『捌』 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集合
集合就相當於你午飯的飯碗
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幾何類一般是四種,map集合,list集合,set集合,properity集合,常用的是map和list,map是鍵值對類型的集合,list是類似於數組類型的集合,按你的意思可以使用map集合類,學生信息可以看成是一個自定義類型 map<string,object> mp=new map<string,object>();