弥补了数组的缺点
存储一堆数据时,首选集合
List 列表 存储的数据有序,且可以重复
ArrayList 底层使用的数组,查询快,增删慢 (面试:ArrayList如何扩容?)
Set 存储的数据无序,且不可重复
Map 存储的是key-value结构数据
package com.qfedu.collection;
import java.util.ArrayList;
import java.util.Collection;
public class App {
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection collection = new ArrayList();
// 向集合中添加元素
collection.add("英雄联盟");
collection.add("穿越火线");
System.out.println(collection);
// 删除指定的元素
collection.remove("穿越火线");
System.out.println(collection);
Collection temp = new ArrayList();
temp.add("梦幻西游");
temp.add("王者荣耀");
// 将一个集合中数据添加到另一个集合中
collection.addAll(temp);
System.out.println(collection);
// 删除指定的集合
// collection.removeAll(temp);
// System.out.println(collection);
// 获取集合中元素的个数
System.out.println(collection.size());
// 判断集合中是否有元素
System.out.println(collection.isEmpty());
// 判断是否包含指定的对象
System.out.println(collection.contains("英雄联盟123"));
// 判断是否包含集合中的所有元素
System.out.println(collection.containsAll(temp));
// 清空集合
collection.clear();
System.out.println(collection);
}
}
package com.qfedu.list;
import java.util.ArrayList;
import java.util.List;
public class App {
public static void main(String[] args) {
// TODO Auto-generated method stub
List list = new ArrayList();
list.add("Java");
list.add("python");
list.add("iOS");
// 在指定索引处插入元素, 其他元素下移
list.add(1, "AI");
System.out.println(list);
// 设置指定索引处的元素
list.set(2, "UI");
System.out.println(list);
// 获取指定索引处的元素
System.out.println(list.get(0));
list.add("AI");
System.out.println(list);
// 获取指定元素的索引 如果没有找到,返回-1
System.out.println(list.indexOf("AI"));
System.out.println(list.lastIndexOf("AI123"));
// 根据开始索引、结束索引,进行list集合的截取, 不包含结束索引处的元素
List subList = list.subList(1, 3);
System.out.println(subList);
// 添加不同类型的元素
list.add(100);
list.add(12.3);
System.out.println(list);
Object item = list.get(0);
// 强制类型转换
String str = (String)item;
System.out.println(str.length());
// 理论上,集合中可以存储不同类型的数据,实际开发是,存的都是相同类型的数据
// java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
// Object object = list.get(5);
// String str2 = (String)object;
// System.out.println(str2.length());
// 泛型 针对集合,在<>指定需要存储的数据类型,<>中使用的数据类型是引用类型
List<String> list2 = new ArrayList<String>();
list2.add("haha");
// list2.add(10); 语法上报错
// 取值的时候也不需要进行强制类型转换
String string = list2.get(0);
System.out.println(string);
}
}