簡單闡述一下Java集合的概要
概念
Java中的集合就是一種容器,可以容納不同種類的數據,這些容納是建立在未知的基礎上。
優點
1.可以動態保存任意多個對象,使用比較方便。
2.提供一系列方便的操作對象的方法:add、remove、set、get等
3.使用集合添加,刪除新元素的示意代碼簡潔。
集合框架圖
Collection接口和常用方法
1.Collection實現子類可以存放多個元素,每個元素可以是Object
2.有些Collection的實現類,可以存放重復的元素,有些不可以
3.有些Collection的實現類,有些是有序的(list),有些不是有序的(set)
4.Collection接口沒有直接的實現子類,是通過他的子接口Set和List來實現的。
Collection接口常用方法
1.add 添加單個元素 2.remove 刪除指定元素 3.contains 查找元素是否存在
4.size 獲取元素個數 5.isEmpty 判斷是否為空 6.clear 清空 7.addAll 添加多個元素
8.containsAll 查找多個元素是否都存在 9.removeAll 刪除多個元素
Collection迭代器遍歷元素
1.Iterator對象稱為迭代器,主要用於遍歷Collection集合中的元素
2.所有實現瞭Collection接口的集合類都有一個iterator()方法,用以返回一個實現瞭
iterator接口的對象,即可以返回一個迭代器
3.Iterator僅用於遍歷集合,它本身並不存放對象
for循環增強
增強for循環,可以代替iterator迭代器
特點:增強for就是簡化版的iterator,本質一樣,隻能用於遍歷集合或數組
基本語法
for(元素類型 元素名:集合名或數組名){ 訪問元素 }
/**案例演示*/ public class Card { public static void main(String[] args) { /** * 1.準備牌 * 2.洗牌 * 3.發牌 * 4.看牌*/ //1. //創建一個牌盒 ArrayList<String> BoxCard = new ArrayList<String>(); //創建花色集合 ArrayList<String> color = new ArrayList<String>(); //創建數字集合 ArrayList<String> numbers = new ArrayList<String>(); //添加花色牌 color.add("♠"); color.add("♥"); color.add("♦"); color.add("♣"); //創建數字牌 for (int i = 2; i <=10 ; i++) { numbers.add(i+""); } numbers.add("J"); numbers.add("Q"); numbers.add("k"); numbers.add("A"); //把花色牌和數字牌添加到一個大牌盒 for (String o:color) { for (String n : numbers) { String card = o + n; BoxCard.add(card); } } BoxCard.add("BigKing"); BoxCard.add("SmallKing"); //2. Collections.shuffle(BoxCard); System.out.println(BoxCard); //3.發牌 //創建三個用戶 ArrayList<String> player1 = new ArrayList<String>(); ArrayList<String> player2 = new ArrayList<>(); ArrayList<String> player3 = new ArrayList<>(); //遞牌 ArrayList<String> GiveCards = new ArrayList<>(); for (int m = 0; m <BoxCard.size(); m++) { //獲取牌面 String cards = BoxCard.get(m); //發牌順序餘三張 if (m>=51){ GiveCards.add(cards); }else { if (m % 3 ==0){ player1.add(cards);//獲取第一個玩傢牌數 }else if (m % 3 ==1){ player2.add(cards);//獲取第二個玩傢牌數 }else { player3.add(cards);//獲取第三個玩傢牌數 } } } //看牌 System.out.println("第一個玩傢"+player1); System.out.println("第二個玩傢"+player2); System.out.println("第三個玩傢"+player3); System.out.println("底牌"+GiveCards); } }
list接口和常用方法
1.list集合類中元素有序(及添加順序和取出順序一致)、可重復
2.list集合類中的每個元素都有其對應的順序索引,及支持索引
3.list容器中的元素對應一個整數型的序號記載其在容器中的位置,可以根據序號存取容器中的元素
4.JDK API中list接口常用實現的類:ArrayList、LinkedList和Vector。
常用方法
add 添加單個元素 remove 刪除指定元素 public E get(int index)返回集合中指定位置 public E set(int index ,E element)用指定元素替換集合中指定位置的元素,返回值的更新前的元素
public class olg { public static void main(String[] args) { //創建集合對象 List<String> list = new ArrayList<String>(); //尾部添加指定數據 list.add("光之子"); list.add("神印王座"); list.add("酒神"); list.add("諸神黃昏"); System.out.println(list); //指定位置添加 list.add(1,"全職高手"); System.out.println(list); //刪除指定元素 System.out.println(list.remove(3)); list.set(1,"鬥羅大陸"); System.out.println(list); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } //增強for for (String s:list){ System.out.println(s); } } }
ArrayList
java.util.ArrayList 集合數據存儲的結構是數組結構。元素增刪慢,查找快,由於日常開發中使用最多的功能 為查詢數據、遍歷數據,所以 ArrayList 是最常用的集合。
LinkedList集合
java.util.LinkedList 集合數據存儲的結構是鏈表結構。方便元素添加、刪除的集合
常用方法
public void addFirst(E e) :將指定元素插入此列表的開頭。 public void addLast(E e) :將指定元素添加到此列表的結尾。 public E getFirst() :返回此列表的第一個元素。 public E getLast() :返回此列表的最後一個元素。 public E removeFirst() :移除並返回此列表的第一個元素。 public E removeLast() :移除並返回此列表的最後一個元素。 public E pop() :從此列表所表示的堆棧處彈出一個元素。 public void push(E e) :將元素推入此列表所表示的堆棧。 public boolean isEmpty() :如果列表不包含元素,則返回true。
public class Linked { public static void main(String[] args) { LinkedList<String> link = new LinkedList<String>(); //添加第一個元素值 link.addFirst("龍皓晨"); link.addFirst("姬動"); link.addFirst("葉音竹"); link.addFirst("長弓威"); System.out.println(link); //獲取元素 System.out.println(link.getFirst());//第一個值 System.out.println(link.getLast());//最後一個值 //刪除元素 System.out.println(link.removeFirst()); System.out.println(link.removeLast()); while (!link.isEmpty()){//判斷集合是否為空 System.out.println(link.pop());//彈出集合中的棧頂元素 } System.out.println(link); } }
Map集合(鍵值對集合)
現實生活中,我們常會看到這樣的一種集合:IP地址與主機名,身份證號與個人,系統用戶名與系統用戶對象等, 這種一一對應的關系,就叫做映射。Java提供瞭專門的集合類用來存放這種對象關系的對象,即 java.util.Map 接口。
HashMap:存儲數據采用的哈希表結構,元素的存取順序不能保證一致。由於要保證鍵的唯一、不重 復,需要重寫鍵的hashCode()方法、equals()方法。
LinkedHashMap:HashMap下有個子類LinkedHashMap,存儲數據采用的哈希表結構+鏈表結構。 通過鏈表結構可以保證元素的存取順序一致;通過哈希表結構可以保證的鍵的唯一、不重復,需要重寫鍵的 hashCode()方法、equals()方法。
常用方法
public V put(K key, V value)`: 把指定的鍵與指定的值添加到Map集合中。 public V remove(Object key)`: 把指定的鍵 所對應的鍵值對元素 在Map集合中刪除,返回被刪除元素的 值。` public V get(Object key)` 根據指定的鍵,在Map集合中獲取對應的值。 ` boolean containsKey(Object key) ` 判斷集合中是否包含指定的鍵。 public Set keySet()`: 獲取Map集合中所有的鍵,存儲到Set集合中。 public Set> entrySet()`: 獲取到Map集合中所有的鍵值對對象的集合(Set集合)。
public class HashMapdemo { public static void main(String[] args) { //創建Map對象 HashMap<String,String> map = new HashMap<String,String>(); //添加元素到集合 map.put("李世民","長孫皇後"); map.put("1","朱元璋"); System.out.println(map); //刪除 System.out.println(map.remove("1")); System.out.println(map); //查看李世民的皇後 System.out.println(map.get("李世民")); } } //添加元素到集合 map.put("李世民","長孫皇後"); map.put("1","朱元璋"); System.out.println(map); //刪除 System.out.println(map.remove("1")); System.out.println(map); //查看李世民的皇後 System.out.println(map.get("李世民")); } }
到此這篇關於簡單闡述一下Java集合的概要的文章就介紹到這瞭,更多相關Java集合內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java List接口的集合使用詳解
- 一篇文章帶你入門java集合
- 深入淺出講解Java集合之Collection接口
- Java開發中最讓人頭疼的十個bug
- Java使用迭代器Iterator遍歷集合