Collection集合、List集合及其方法
集合框架:
集合就是一個容器,
陣列也是一個容器,大小是唯一的型別是唯一的,它是有指標的
集合的特點:
1.容器大小可變
2.可以儲存多種資料型別的值【只能是引用資料型別,對基本資料型別而言儲存的是其包裝類】
根據集合的儲存方式不同,將集合劃分兩大類:一類是單列集合,另一類是雙列集合。
關鍵詞:Collection(單列集合)、Map(雙列集合)
下面我們先看一下單列集合,
單列集合
Collection被稱為是單列集合
單列集合是一個集合需要子類實現
List 允許重複、有序(輸入輸出順序)
Set 不允許重複、無序(不保證輸出順序)
Collection中的方法:
新增:
add(Object object) 向集合中新增一個元素
addAll(Collection collection) 向集合中新增另一個集合
Collection coll = new ArrayList();
coll.add("滄海");//新增
Collection coll2 = new ArrayList();
coll2.add("愛");//新增
coll2.addAll(coll);//新增集合
刪除:
remove(Object object) 從集合中移除指定的元素
removeAll(Collection collection) 從集合中移除指定的元素集合
coll.remove(1); //remove刪除單個元素
System.out.println("刪除單個元素後:"+coll);
//移除指定集合的元素 只要有相同的就移除
Collection coll2 = new ArrayList();
coll2.add(1);
coll2.add(2);
coll2.add(3);
coll2.add("滄海");
coll.removeAll(coll2);//刪除coll集合中和coll2及格元素相同的元素
System.out.println("刪除coll集合中和coll2中相同的元素:"+coll);
System.out.println("coll2中的元素:"+coll2);
clear() 清空集合中的所有元素
coll.clear();//clear清空
System.out.println("清空後的集合:"+coll);
//清空只能清空資料集合任然在
判斷:
isEmpty() 判斷集合是否為空—看集合中是否有元素
//判斷集合是否為空isEmpty()
System.out.println("是否為空"+coll.isEmpty());
contains(Object object) 判斷集合中是否包含指定的元素
containsAll(Collection collection) 判斷集合中是否有另一個集合中對應的所有的元素
/**
* 是否包含
* 包含關鍵字:contains() containsAll()
*
*/
public static void judgeMethod() {
//建立集合物件
Collection coll = new ArrayList();
//add新增元素
coll.add("滄海");
coll.add(1);
coll.add("聲笑");
System.out.println("coll-->"+ coll);
//是否包含某個元素
; System.out.println("是否包含1:"+coll.contains(1));
//addAll新增集合
Collection coll2 = new ArrayList();
coll2.add("愛");
coll2.addAll(coll);//新增coll集合
System.out.println("coll2-->"+coll2);
//containsAll是否包含某個集合
System.out.println("是否包含某個集合:"+coll.containsAll(coll2));
遍歷:
iterator() 遍歷集合
/**
* 迭代器(也就是遍歷集合)
*/
public static void iteratorMetod() {
Collection coll = new ArrayList();
coll.add("heihei");
coll.add("小強");
coll.add(123);
Iterator it = coll.iterator();//迭代器
大小:
size() 獲取集合元素個數
轉換:
toArray() 將集合轉換為陣列----注意:集合中元素的型別是惟一的//建立集合物件
public static void changeArrayMetod() {
Collection coll = new ArrayList();
coll.add("heihei");
coll.add("小強");
coll.add(123);
//將集合轉換為陣列
//方法toArray()
Object[] objs = coll.toArray();
for (int i = 0; i < objs.length; i++) {
if (objs[i] instanceof String) {
String str = (String)objs[i];
System.out.println(str);
}
}
System.out.println(objs.length);
}
Collections與Collection的區別:
Collections是針對Collection集合提供的一個工具類
List集合及其應用
List集合同樣是單列集合並且是Collection集合的子類,但List同樣是一個介面需要子類來實現才能呼叫其中的方法。
/**
* List集合中常見的子類
* ArrayList
* 使用的是陣列資料結構,查詢快,增刪慢
* LinkedList
* 使用的是陣列連結串列資料結構,增刪快,查詢慢
*/
/**
* 通過下標進行元素新增
*/
public static void addMethod() {
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱陽湖");
list.add("西湖");
list.add(1, "龍子湖");
System.out.println("list:"+list);
List list2 = new ArrayList();
list2.add("雞公山");
list2.add("靈山");
list2.add("老君山");
System.out.println("list2:"+list2);
list.addAll(1,list2);
System.out.println("新增後的集合:"+list);
}
/**
* 通過下標移除元素
*/
public static void removeMethod() {
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱陽湖");
list.add("西湖");
System.out.println("list集合的元素:"+list);
list.remove(1);
System.out.println("list集合刪除指定元素後:"+list);//這裡的結果為 {洞庭湖 ,西湖}
List list2 = new ArrayList();
list2.add("雞公山");
list2.add("靈山");
list2.add("西湖");
list.removeAll(list2);
System.out.println("移除與list2相同的元素:"+list);//{洞庭湖,鄱陽湖}
}
/**
* 獲取指定下標對應的元素
* list.get(下標數);
*/
public static void getElementMethod() {
//get(int index)
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱陽湖");
list.add("西湖");
System.out.println("指定下標對應的元素:"+list.get(2));
}
/**
* 在迭代的過程中修改集合中的元素
*/
public static void listlteratorMethod() {
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱陽湖");
list.add("西湖");
//獲取迭代器
ListIterator listlt = list.listIterator();
int i = 0;
while(listlt.hasNext()) {
Object obj = listlt.next();
if (i%2 != 0) {
listlt.add("東"+ i + "湖");
} else {
listlt.set("西"+ i + "湖");
}
i++;
}
System.out.println("修改後的集合:" + list);
}
/**
* list集合中指標查詢方向
*
*/
public static void listlteratorMethod2() {
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱陽湖");
list.add("西湖");
//獲取迭代器
ListIterator listlt = list.listIterator();
System.out.println("下一個:"+ listlt.next());
System.out.println("下一個:"+ listlt.next());
System.out.println("下一個:"+ listlt.next());
System.out.println("上一個:"+listlt.previous());
System.out.println("上一個:"+listlt.previous());
System.out.println("上一個:"+listlt.previous());
}
}
/**
* Collections是針對Collection集合提供的一個工具類
* sort(List list) 對list集合進行排序(自然排序)
* set集合不重複、TreeSet是預設就有自然排序的
*/
public class CollectionsDemo {
public static void main(String[] args) {
compareList();
}
public static void compareList() {
List list = new ArrayList();
list.add("baidu.com");
list.add("aliyun.cn");
list.add("taobao.com");
list.add("yunhe.cn");
System.out.println("未排序的集合:"+list);
//對集合進行排序
Collections.sort(list);
System.out.println("排序後的集合:"+ list);
}
}
`
相關文章
- Java 的 Collection 與 List 集合Java
- 【Java集合】單列集合Collection常用方法詳解Java
- 【JAVA集合】JAVA集合框架及其常用方法Java框架
- list 列表(屬於集合collection中的一種)
- Java集合-CollectionJava
- 【Java】【集合】collection介面常見方法、集合轉陣列toArray()、帶ALL的方法Java陣列
- java.util.Collection集合方法:Collections.BinarySearch 方法Java
- Collection集合的遍歷
- Java:Collection集合、泛型Java泛型
- java集合-ListJava
- 集合------集合框架Collection/Iterator迭代器/增強for迴圈框架
- Java Collection介面 ArrayList集合(容器)Java
- Java Collection集合面試題Java面試題
- List型別集合型別
- list 集合去重
- List集合轉JSONObjectJSONObject
- 十五個常用的 Laravel 集合(Collection)Laravel
- 15個常用的Laravel 集合(Collection)Laravel
- List集合(ArrayList-LinkedList);Set集合(HashSet-TreeSet)
- Java程式設計基礎17——集合(List集合)Java程式設計
- java list 集合去重Java
- 3、List集合——ArrayList、LinkedList
- Java集合List隨堂Java
- 【java】【集合】List、ListIterator、VectorJava
- 【JavaSE】集合類Collection集合Map集合的簡單介紹,List介面,中三個常用子類ArrayList、Vector、LinkedList之間的比較。Set介面。Java
- Java中List集合轉Map集合報錯:Duplicate keyJava
- 教程:Laravel 集合(Collection)的基礎用法Laravel
- Android基礎之Java集合框架CollectionAndroidJava框架
- 小白學集合之List介面
- Java集合原始碼探究~ListJava原始碼
- 集合原始碼分析[1]-Collection 原始碼分析原始碼
- Java中List集合效能比較Java
- 集合第一個Array List理解
- Java List 常用集合 ArrayList、LinkedList、VectorJava
- 陣列轉換成List集合陣列
- Java集合(5)之 List 總結Java
- mybatis自定義List集合解析器MyBatis
- 對Java list集合的新認知Java