文章目录
1. 集合的特点
- 集合是Java中存储对象数据的一种容器。
- 集合的大小不固定,启动后可以动态变化,类型也不固定。
- 集合适用于元素的增删操作。
- 集合中只能存储引用类型数据,存储基本数据类型要使用包装类。
- 集合中存储的是元素对象的地址。
- Collection单列集合,每个元素只包含一个值; Map双列集合,每个元素包含两个值。
2. Collcetion集合
2.1 collection常用API
/**
*collection常用API
**/
public class ColllectionTest {
public static void main(String[] args) {
//HashSet添加元素无序、不重复、无索引
Collection<String > list = new ArrayList<>();
//1、添加元素,添加成功返回true
list.add("Java");
list.add("HTML");
//如果为HashSet,则返回false
System.out.println(list.add("HTML"));
list.add("MySQL");
list.add("Java");
list.add("黑马");
System.out.println(list);
//2、清空集合元素
//list.clear();
//System.out.println(list);
//3、判断集合是否为空,空返回true;
System.out.println(list.isEmpty());
//4、获取集合的大小
System.out.println(list.size());
//5、判断集合中是否存在某个元素
System.out.println(list.contains("Java"));
System.out.println(list.contains("java"));
//6、删除某个元素,如有多个默认删除第一个
list.remove("Java");
System.out.println(list);
//7、集合转换成数组
Object[] arrs = list.toArray();
System.out.println(Arrays.toString(arrs));
//扩展:
/**
* 将list2的数据复制list1中
* list1.addAll(list2)
**/
}
}
2.2 Collection的遍历
2.2.1 Iterator迭代器
迭代器在Java中的代表是Iterator,迭代器是集合的专用遍历方式。
/**
* 迭代器遍历Collection
*/
public class CollectionTraversal {
public static void main(String[] args) {
Collection<String> list = new ArrayList<>();
list.add("赵敏");
list.add("小昭");
list.add("素素");
list.add("灭绝");
System.out.println(list);
//1、获得迭代器对象
Iterator<String> it = list.iterator();
//先取元素后移位
//String ele = it.next();
//System.out.println(ele);
//2、定义while循环
while (it.hasNext()){
System.out.println(it.next());
}
}
}
2.2.2 增强for
- 增强for循环:既可以遍历集合也可以遍历数组。
- jdk5之后出现的,其内部原理是一个Iterator迭代器,遍历集合相当于是迭代器的简化写法。
- 实现Iterable接口的类才可以使用迭代器和增强for,Collection接口已经实现了Iterable接口。
/**
* 增强for遍历集合
*/
public class CollectionTraversalPlus {
public static void main(String[] args) {
Collection<String> list = new ArrayList<>();
list.add("赵敏");
list.add("小昭");
list.add("素素");
list.add("灭绝");
System.out.println(list);
Iterator<String> it = list.iterator();
for (String ele:list) {
System.out.println(ele);
}
}
}
2.2.3 Lambda表达式
public class CollectionForEach {
public static void main(String[] args) {
Collection<String> list = new ArrayList<>();
list.add("赵敏");
list.add("小昭");
list.add("素素");
list.add("灭绝");
System.out.println(list);
//匿名内部类Lambda简化
list.forEach(s -> System.out.println(s) );
}
}