集合
- 数组是定长的 长度一旦确定不能更改 集合是不限长的
- 数组中数组元素类型是一致的 集合中不限制类型可以放任意数据类型(集合中不能有基本数据类型 只能放对象)
- 集合中提供了较多的数据结构 使用效率相对较高
1. Collection 接口的特点是元素是 **单列(即单值)**;
2. List 接口的特点是元素**有顺序,可以重复**;
3. Set 接口的特点是元素 **无顺序, 不可以重复**;
4. Map 接口的特点是元素是 **双列(即双值) ,其中 value 可以重复, key 不可以重复**。
1.Collection 接口
特点是元素是 单列,只能存放单值
提供的方法有:isEmpty();集合有无元素
add(); 添加集合元素
addAll();添加另一个集合的所有元素
size();集合大小
contains();是否包含某个对象
containsAll();是否包含另一个集合的所有对象
toArray();实现类转数组
remove();从集合中移除某个对象
retaionAll();只保留另一个集合中存在的元素 其余移除
clear();清空集合
练习:
public static void collectionMethods() {
Collection collection = new ArrayList();
Collection collection2 = new ArrayList();
collection2.add(99);
collection2.add(66);
// isEmpty()集合有无元素
System.out.println("集合是否无元素 " + collection.isEmpty());
// add() 添加集合元素 int-> Integer
boolean add = collection.add(123);
boolean add1 = collection.add("abc");
System.out.println("添加是否成功 " + add);
// size()集合大小
int num = collection.size();
// isEmpty()集合是否无元素
System.out.println("集合是否无元素 " + collection.isEmpty());
System.out.println("元素个数 " + num);
//contains()是否包含某个对象
boolean contains = collection.contains("abc");
System.out.println("是否包含123这个对象 " + contains);
// toArray() Collection实现类转数组
Object[] objects = collection.toArray();
System.out.println("转数组 " + Arrays.toString(objects));
// remove() 从集合中移除某个对象
boolean abc = collection.remove("abc");
System.out.println("移除 " + abc);
// containsAll() 是否包含另一个集合的所有对象
boolean b = collection.containsAll(collection2);
System.out.println("是否包含 另外一个集合的所有元素 " + b);
// addAll() 添加另一个集合的所有元素
boolean b1 = collection.addAll(collection2);
// retainAll() 只保留另一个集合中存在的元素 其余移除
boolean b2 = collection.retainAll(collection2);
// clear() 清空集合
collection.clear();
System.out.println("集合元素内容 " + collection);
}
1.1.List 接口
List中的数据可以重复存入,但是List数据是有存取顺序的
提供的方法大多是从Collection继承下来的,有自己的方法:get();指定索引获取对象 索引值不能超过size大小
set();指定索引位置进行替换对象
insert();指定索引进行插入
indextOf();返回指定对象首次出现索引值
lastIndexOf();对象最后一次出现的索引值
练习:
public static void listMethods() {
List list = new ArrayList();
list.add