集合介绍:
day023:集合_ZQyyds:)的博客-CSDN博客,day024:集合(2)_ZQyyds:)的博客-CSDN博客
一、集合
1.集合与数组的区别:
- 数组的长度不可变,集合长度可变
- 数组可以存储基本数据类型,也可存储引用数据类型;集合只能存储引用数据类型,若想存储基本数据类型,需将泛型改为相应的包装类
(包装类介绍:day042:基本类型的包装类、Integer的parseInt方法、自动装箱与自动拆箱_ZQyyds:)的博客-CSDN博客)
代码示例:
public class CollectionDemo_01 {
public static void main(String[] args) {
//使用数组可以存储基本数据类型,也可存储引用数据类型
int[] arr1 = {1, 2, 3,};
String[] arr2 = {"a", "b", "c"};
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
System.out.println("-----------------------------");
//使用集合存储基本数据类型时,要将泛型中写为基本数据类型的包装类
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
System.out.println(list1);
}
}
2.集合的体系结构:
- 单列(collection):表示一次只存储一个元素,例如:“张三”
- 双列(map):表示一次存储两个元素,例如:“张三 上海”
下表展示了集合的体系结构,其中蓝色框代表接口,红色框代表实现类
3.单列Collection集合
Collection集合概述:
- 是单例集合的顶层接口,它表示一组对象,这些对象也成为Collection的元素
- JDK不提供此接口的任何实现,它提供更具体的子接口(如set、list)实现
创建Collection集合的对象:
- 多态的方式
- 具体的实现类ArrayList
代码示例:
/*集合进阶:Collection常见的成员方法*/
public class CollectionDemo_02 {
public static void main(String[] args) {
//这里不能newCollection,因为它是接口,应该new实现类ArrayList
Collection<String> collection = new ArrayList<>();
add(collection);
remove(collection);
removeIf(collection);
clear(collection);
contains(collection);
isEmpty(collection);
size(collection);
}
private static void size(Collection<String> collection) {
//size输出集合长度
int size = collection.size();
System.out.println(size);
}
private static void isEmpty(Collection<String> collection) {
//isEmpty判断集合是否为空,若为空,返回true,否则返回false
boolean result4 = collection.isEmpty();
System.out.println(result4);
}
private static void contains(Collection<String> collection) {
//contains判断集合中是否存在指定元素,若存在,返回true,否则返回false
boolean result3 = collection.contains("a");
System.out.println(result3);
}
private static void clear(Collection<String> collection) {
//clear清空:将集合中所有元素删除
collection.clear();
System.out.println(collection);
}
private static void removeIf(Collection<String> collection) {
//removeIf根据条件进行删除,removeIf的小括号中传入lambda表达式
//removeIf底层会遍历集合,得到集合中每一个元素
//s依次表示集合中的每一个元素,在lambda表达式中进行判断,若返回true,则删除,若返回false,则不会删除。
collection.removeIf(
(String s) -> {
//根据删除条件进行判断:删除长度为3的字符串,若长度为3,返回true,则删除
return s.length() == 3;
}
);
System.out.println(collection);
}
private static void add(Collection<String> collection) {
//add添加元素
collection.add("aaa");
collection.add("bbb");
collection.add("ccc");
System.out.println(collection);
}
private static void remove(Collection<String> collection) {
//remove删除元素
//如果删除成功,则返回true,否则返回false
boolean result1 = collection.remove("aaa");
boolean result2 = collection.remove("ddd");
System.out.println(result1);
System.out.println(result2);
System.out.println(collection);
}
}