亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA中集合體系的示例分析

發布時間:2021-08-17 10:43:02 來源:億速云 閱讀:153 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關JAVA中集合體系的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

一、集合概況

Java是一種面向對象語言,如果我們要針對多個對象進行操作,那么首先必要將多個對象進行保存起來之后,然后才能操作,那么我們肯定會想到用數組來進行存放,但數組長度固定,不能滿足變化的要求。所以,JAVA提供了集合。

數組與集合的區別:

數組:長度固定、可以存放基本類型/引用類型、數組中元素的類型必須一致

集合:長度可變自動擴容、只能存放引用類型、集合中元素類型可以不一致但一般保持一致

二、集合體系

集合作為一個容器,可以存儲多個元素,但是由于數據結構的不同,java提供了多種集合類。將集合類中共性的功能,不斷向上抽取,最終形成了集合體系結構。

數據結構:數據存儲的方式

Java中集合類的關系圖:

JAVA中集合體系的示例分析

JAVA中集合體系的示例分析

三、Collection【單值接口】

Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)。因為一些Collection允許存放相同的元素而另一些不行。一些能有序而另一些不行,于是衍生出兩個子類接口List和Set。

JAVA中集合體系的示例分析

Collection接口中常用方法:

A:添加功能
boolean add(Object obj):向集合中添加一個元素
boolean addAll(Collection c):向集合中添加一個集合的元素。
B:刪除功能
void clear():刪除集合中的所有元素。
boolean remove(Object obj):從集合中刪除指定的元素
boolean removeAll(Collection c):從集合中刪除一個指定的集合元素。
C:判斷功能
boolean isEmpty():判斷集合是否為空。
boolean contains(Object obj):判斷集合中是否存在指定的元素。
boolean containsAll(Collection c):判斷集合中是否存在指定的一個集合中的元素。
D:遍歷功能
Iterator iterator():就是用來獲取集合中每一個元素。
E:長度功能
int size():獲取集合中的元素個數
F:交集功能
boolean retainAll(Collection c):判斷兩個集合中是否有相同的元素。
G:把集合轉換成數組
Object[] toArray():把集合變成數組。

List接口中常用方法:

首先我們知道List接口是Collection接口的子類,所以也具備上面的方法,但除了上面的方法外,List接口中典型的ArrayList底層是采用的數組結構,因此還具體被一些索引操作的方法,如下:

List的特有功能
A:添加功能
void add(int index, Object obj):在指定位置添加元素
B:刪除功能
Object remove(int index):根據指定索引刪除元素,并把刪除的元素返回。
C:修改功能
Object set(int index, Object obj):把指定索引位置的元素修改為指定的值,返回修改前的值。
D:獲取功能
int indexOf(Object o):返回指定元素在集合中第一次出現的索引
Object get(int index):獲取指定位置的元素
ListIterator listIterator():列表迭代器
E:截取功能
List subList(int fromIndex, int toIndex):截取集合。

Set接口中常用方法:

Set接口下的元素無序,不可以重復。其下面分為HashSet和TreeSet。

HashSet

底層數據結構是哈希表,線程不安全,效率高。
保證唯一性依賴兩個方法:hashCode()和equals()。
順序:
判斷hashCode()值是否相同。
相同:繼續走equals(),看返回值
如果true:就不添加到集合。
如果false:就添加到集合。
不同:就添加到集合。

TreeSet

底層數據結構是二叉樹,線程不安全,效率高。
保證元素唯一性的方法時根據返回值是否是0。
保證排序的兩種方式:
自然排序(元素具備比較性):實現Comparable接口
比較器排序(集合具備比較性):實現Comparator接口

四、迭代器(Iterator)

迭代器,從第一張JAVA集合類圖關系中可以看出,除了中間的Collection外,置于最頂上的左邊為迭代器Iterator.

1.使用步驟:

1、通過集合對象獲取迭代器對象。
2、通過迭代器對象判斷。
3、通過迭代器對象獲取。

2.迭代器原理

由于多種集合的數據結構不同,所以存儲方式不同,所以,取出方式也不同。那么這個時候,把判斷和獲取功能定義在了一個接口中,將來,遍歷哪種集合的時候,只要該集合內部實現這個接口即可。【迭代器模式】

3.Collection存儲字符串和自定義對象并通過迭代器遍歷

Collection c = new ArrayList(); 
c.add("hello"); 
c.add("world"); 
c.add("java"); 
 
Iterator it = c.iterator(); 
while(it.hasNext()) 
{ 
  String s = (String)it.next(); 
  System.out.println(s); 
}

4.ListIterator迭代器是Iterator的子接口

所以List的遍歷方式共有三種1、Iterator迭代器2、ListIterator迭代器3、普通for+get()

五、Map<鍵值對接口>

map是一個鍵值對形式的集合。它的元素都是有鍵和值組成。Map的鍵(key)是唯一的,值(value)可以重復。

JAVA中集合體系的示例分析

Map接口中常用方法:

A:添加功能
V put(K key ,V value) :當key在集合中不存在是,添加元素;當key存在時替換元素
B:判斷功能
boolean containsKey (Object key) :判斷指定的鍵是否在集合中存在
Boolean containsValue(Object value):判斷指定的值是否在集合中存在
Boolean isEmpty() :判斷集合是否為空
C:刪除功能
Void clear():清除所有鍵值對數據
D:獲取功能
Object get (Object key) :根據鍵獲取值
Set<K> keyset(): 所有鍵的集合
Collection<V>values() :所有值的集合
Set<Map.Entry<K,V>> entrySet() :返回此映射中包含的映射關系的 Set 視圖
E:長度功能
Int size()

Map包括HashMap、HashTable和TreeMap。其中,HashTable已基本被HashMap取代, 新代碼中基本不在使用HashTable
(注:HashMap支持null , HashTable不支持null )

Map的遍歷方式:

1.鍵找值:

public static void main(String[] args) { 
  Map<String,Integer> map = new HashMap<String,Integer>(); 
  map.put("二陽",23); 
  map.put("二崢",24); 
  map.put("二光",25); 
  Set<String> keys=map.keySet();  //把鍵其中起來,存入到set集合中. 
  for(String key:keys){    //遍歷鍵集合,獲取每一個鍵。增強for 
   Integer value=map.get(key);  //讓鍵去找值 get(Object key) 
   System.out.println(key+"***"+value); 
  } 
}

 2.鍵值對

public static void main(String[] args) { 
  Map<String,Integer> map = new HashMap<String,Integer>(); 
  map.put("二陽",23); 
  map.put("二崢",24); 
  map.put("二光",25); 
  Set<String> keys=map.keySet();  //把鍵其中起來,存入到set集合中. 
  for(String key:keys){    //遍歷鍵集合,獲取每一個鍵。增強for 
   Integer value=map.get(key);  //讓鍵去找值 get(Object key) 
   System.out.println(key+"***"+value); 
  } 
}

感謝各位的閱讀!關于“JAVA中集合體系的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天等县| 易门县| 武陟县| 大兴区| 松溪县| 沁水县| 永济市| 云南省| 东乡县| 岗巴县| 怀仁县| 陆丰市| 武安市| 赤水市| 门头沟区| 山东省| 庆阳市| 东丰县| 镇宁| 达拉特旗| 崇仁县| 济源市| 莆田市| 北流市| 鄂州市| 古田县| 克什克腾旗| 蓬莱市| 克东县| 吴桥县| 桃园市| 新蔡县| 温州市| 临洮县| 醴陵市| 翁牛特旗| 伊宁市| 始兴县| 包头市| 汕头市| 丰镇市|