轉自:
http://www.java265.com/JavaCourse/202206/3753.html
下文將對java集合進行詳細的講解,如下所示Java集合的概念
java集合特性:
1.大小不固定,但可動態變化
2.型別可不固定,因為其是一個泛型集合容器
3.集合非常適合元素的增刪操作
java集合注意事項:
java集合中只能存入參考型別資料
如果要儲存基本型別資料,需使用包裝類
java集合使用場景:
當存盤資料的數量未知的情況下
可以通過定義集合來實作
可以有效的避免容量不夠
java集合
java集合分為兩大不同結構
一:Collection(用于存盤單列資料)
每個元素在集合中只存盤一個值
二:Map(用于存盤雙列資料)
每個元素采用鍵值對的方式存盤
java集合每一個分類的特性
List系列集合:添加的元素是有序、可重復、有索引 ArrayList、LinekdList:有序、可重復、有索引 Set系列集合:添加的元素是無序、不重復、無索引 HashSet:無序、不重復、無索引 LinkedHashSet:有序、不重復、無索引 TreeSet:按照大小默認升序排序、不重復、無索引 List系列集合:有序、可重復、有索引
例:
Collection list = new Arrayslist();
list.add("Java265");
list.add("Java265");
list.add("劉允熙");
list.add(891);
list.add(678);
list.add(true);
list.add(false);
System.out.println(list);
//輸出結果:
[Java265,Java265,劉允熙,891,678,true,false]
Set系列集合:無序、不重復、無索引
Collection list = new HashSet();
list.add("Java265");
list.add("Java265");
list.add("劉允熙");
list.add(891);
list.add(678);
list.add(true);
list.add(false);
System.out.println(list);
//輸出結果:
[false, 劉允熙, 678, Java265, 891, true]
集合對于泛型的支持
java中集合都是支持泛型
用于在編譯階段約束集合只能操作某種資料型別
例:
Collection<String> lists = new ArrayList<String>();
Collection<String> lists = new ArrayList();//JDK1.7開始后面的泛型型別可以省略不寫
注意事項:
1.集合和泛型都只支持參考資料型別,不支持基本資料型別
2.集合中存盤的元素一定是物件
報錯寫法: Collection<int> lists = new ArrayList<>();//報錯
集合中存盤基礎型別的放啊
Collection<Integer> lists = new ArrayList<>(); Collection<Double> lists = new ArrayList<>();
Collection常用API
public static void main(String[] args) {
Collection<String> list = new ArrayList<>();
//1、添加元素,成功則回傳true
list.add("Java265");
System.out.println(list.add("劉允熙"));
System.out.println(list);
System.out.println("------------------------");
//2、清空集合中的元素
list.clear();
System.out.println(list);
System.out.println("------------------------");
//3、判斷元素是否為空,是慷訓傳true,反之則false
System.out.println(list.isEmpty());
//4、獲取集合的大小
System.out.println("------------------------");
System.out.println(list.size());
System.out.println("------------------------");
//5、判斷集合中是否包含某個元素
list.add("Java265");
list.add("劉允熙");
System.out.println(list.contains("Java265"));
System.out.println("------------------------");
//6、洗掉某個元素,若有重復,則默認洗掉第一個
list.add("Java265");
System.out.println(list);
list.remove("石原靜香");
list.remove("Java265");
System.out.println(list);
System.out.println("------------------------");
//7、把集合轉換成陣列
Object[] array = list.toArray();
System.out.println(Arrays.toString(array));
System.out.println("------------------------");
//8、將一個集合中的元素添加到另一個集合中
Collection<String> l1 = new ArrayList<>();
Collection<String> l2 = new ArrayList<>();
l1.add("Java265");
l1.add("劉允熙");
l2.add("朱茵");
l2.add("紫霞仙子");
l1.addAll(l2);
System.out.println(l1);
System.out.println(l2);//l2中的元素沒有變化
}
遍歷Java集合的方式
迭代器遍歷
遍歷就是一個一個的把容器中的元素訪問一遍 迭代器在Java中的代表是iterator,迭代器是集合的專用遍歷方式
Collection<String> list = new ArrayList<>();
list.add("Java265");
list.add("劉允熙");
list.add("朱茵");
list.add("紫霞仙子");
Iterator<String> it = list.iterator();
while(it.hasNext){//判斷索引處有無值
System.out.println(it.next);//從零索引開始取值,取過值以后,索引后移
}
增強for回圈
增強for回圈
既可以遍歷集合也可以遍歷陣列
它是JDK5之后出現的
其內部原理是一個lterator迭代器
遍歷集合相當于是迭代器的簡化寫法
實作lterable介面的類才可以使用迭代器和增強for
Collection介面已經實作了lterable介面
增強for回圈的語法格式
for(元素資料型別 變數名 : 陣列或者Collection集合){
在此處使用變數即可,該變數就是元素
}
Collection<String> list = new ArrayList<>();
for(String s : list){
System.out.println(s);
}
Lambda運算式對java集合的操作
例:采用匿名內部類對集合進行操作Collection <String>list = new ArrayList<>();
list.forEach(new Consumer<String>(){
@Override
public void accept(String s){
System.out.println(s);
}
});
//簡化為Lambda運算式
list.forEach(s->{
System.out.println(s);
});
//或者更加簡化:
list.forEach(s -> System.out.println(s));
集合存盤自定義類的變數
例:創建一個User類
分別創建兩個物件s1和s2
將這兩個物件儲存在集合之中
并通過遍歷方法進行輸出
Collection<User> Users = new ArrayList<>();
User s1 = new User("柳絮","智能",26,1);
Users.add(s1);
User s2 = new User("李世民","資料庫",16,2);
Users.add(s2);
for(User User:Users){
System.out.println("姓名:"+User.getName());
System.out.println("學號:"+User.getNum());
System.out.println("年齡:"+User.getAge());
System.out.println("班級:"+User.getClassroom());
System.out.println("-------------------------");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/492485.html
標籤:其他
下一篇:java中各集合容器使用場景說明
