認識集合以及常用方法
認識集合
Java集合框架主要包括兩種型別的容器,一種是集合(Collection),存盤一個元素集合,另一種是圖(Map),存盤鍵/值對映射,Collection介面又有三種子型別,List,Set和Queue,再下面是一些抽象類,最后是具體實作類,常用的有ArrayList,LinkedList HashSet,LinkedHashSet,HashMap,LinkedHashMap等等,
以下是集合框架體系圖

ArrayList
常用方法

如何遍歷輸出一個ArrayList集合中的元素是十分重要且經常要用到的方法
ArrayList alist = new ArrayList();
alist.add(31);
alist.add("rapper蟲兒飛")
alist.add("哦哈")
//回圈遍歷
for(int i=0;i<alist.size();i++){
System.out.print(alist.get(i)+"\t");
}
System.out.println("--------------------------");
//增強for 回圈
for (Object o:alist){
System.out.print(o)
}
System.out.println("--------------------------");
//迭代器
Iterator it=alist.iterator();
while(it.hasNext()){
System.out.print(it.next()+"\t");
}
LinkedList
存盤原理是一個鏈表,在元素的前后分別有一個前置結點和后置結點,用于連接集合中的上一個元素和下一個元素,依次構成一條鏈式資料的集合,
LinkedList相比較于ArrayList特有的方法如下
void addFirst(Object o) 給指定元素插入當前集合頭部
void addLastt(Object o) 給指定元素插入當前集合尾部
··· getFirst() 獲取當前集合的第一個元素
··· getLast() 獲取當前集合的最后一個元素
··· removeFirst() 移除并回傳當前集合的第一個元素
··· removeLast() 移除并回傳當前集合的最后一個元素
遍歷輸出LinkedList的方法和ArrayList的一樣
Set
set介面的特點:存盤一組唯一(不允許出現重復的元素),無序(沒有index下標的)的物件,HashSet是Set介面常用的實作類,
HashSet set=new HashSet();
set.add("ni");
set.add(22);
//沒有修改資料的方法
//洗掉資料
set.remove(22);
//只能獲取所有元素--只能用增強for回圈和迭代器Iterator輸出
for (Object o:set){
System.out.println(o)
}
Iterator it =set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
JDK9版本加入新特性
這個新特性可以給集合一次性添加多個元素,方便了平時對增加元素的操作,
/*JDK9的新特性:
List介面,Set介面,Map介面:里邊增加了一個靜態的方法of,可以給集合一次性添加多個元素
static <E> List<E> of?(E... elements)
使用前提:
當集合中存盤的元素的個數已經確定了,不在改變時使用
注意:
1.of方法只適用于List介面,Set介面,Map介面,不適用于接介面的實作類
2.of方法的回傳值是一個不能改變的集合,集合不能再使用add,put方法添加元素,會拋出例外
3.Set介面和Map介面在呼叫of方法的時候,不能有重復的元素,否則會拋出例外
*/
public static void main(String[] args) {
List<String> list = List.of("a", "b", "a", "c", "d");
System.out.println(list);//[a, b, a, c, d]
//list.add("w");//UnsupportedOperationException:不支持操作例外
//Set<String> set = Set.of("a", "b", "a", "c", "d");//IllegalArgumentException:非法引數例外,有重復的元素
Set<String> set = Set.of("a", "b", "c", "d");
System.out.println(set);
//set.add("w");//UnsupportedOperationException:不支持操作例外
//Map<String, Integer> map = Map.of("張三", 18, "李四", 19, "王五", 20,"張三",19);IllegalArgumentException:非法引數例外,有重復的元素
Map<String, Integer> map = Map.of("張三", 18, "李四", 19, "王五", 20);
System.out.println(map);//{王五=20, 李四=19, 張三=18}
//map.put("趙四",30);//UnsupportedOperationException:不支持操作例外
}
感謝evbd的閱讀!!!希望有所幫助,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/198608.html
標籤:其他
上一篇:阿里三面慘遭被虐,spring,jvm,mybatis,并發編程等一竅不通
下一篇:2020-10-31
