1.集合的特点
- 集合类型可以不固定,大小是可变的;
- 集合只能存储引用类型的数据;
- 集合适合于数量不确定,增删比较多的场景.
2.集合对泛型的支持
集合都是支持泛型的,可以在编译阶段约束集合只能操作某种数据类型.
System.out.println("------泛型集合控制数据类型--------");
Collection<String> list1=new ArrayList<>();
list1.add("myJava");
list1.add("Java");
注意:集合和泛型都只能支持引用数据类型,不支持基本数据类型,所以集合中存储的元素都认为是对象.
3.集合的代表是Collention接口
4. Collention常用API
//1.创建一个集合对象学习
Collection<String> list=new ArrayList<>();
//2.添加元素,添加成功,返回true
list.add("Java");
list.add("Java");
System.out.println(list.add("李四"));
list.add("张三");
System.out.println(list);
//3.清空所有元素内容
// list.clear();
// System.out.println(list);
//4.判断集合是否为空,是空返回true,反之
System.out.println(list.isEmpty());
//5.获取集合的大小
System.out.println(list.size());
//6.判断集合中是否包含某个元素
System.out.println( list.contains("Java"));//true
//7.删除某个元素:如果有多个重复元素默认删除前面的第一个
System.out.println(list.remove("1"));
System.out.println(list);
//8.把集合转换成数组
Object[] objects = list.toArray();
System.out.println(Arrays.toString(objects));
5.迭代器遍历概述
- 遍历就是一个个的把容器的元素访问一遍;
- 迭代器在Java中的代表是Iterator,迭代器是集合的专用遍历方式
6.Collention集合遍历方式
1:获取迭代器
方法名称:Iterator<E> iterator() :返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引.
//1.得到当前对象的迭代器对象
Iterator<String> it = list.iterator();
while (it.hasNext()){
String e=it.next();
System.out.println(e);
}
String e1=it.next();
System.out.println(e1);//越界会出现:NoSuchElementException异常
2.增强for
既可以遍历集合也可以遍历数组遍历格式:
for(元素数据类型 变量名 :数组或者Collection集合){
//在此处使用变量即可,该变量就是元素
}
int[] i={11,22,33,44,55};
for (int i1 : i) {
System.out.println(i1);
}
3.Lambda遍历集合
list2.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
//简化后
list2.forEach( s-> System.out.println(s));
7.集合存储自定义类型的对象
定义一个Movie类
public class Movie {
private String name;
private double score;
private String actor;
}
集合存储Movie类型的元素并打印输出
Collection<Movie> movies=new ArrayList<>();
movies.add(new Movie("<你好,李焕英>",9.5,"贾玲,张小斐,沈腾,陈赫"));
movies.add(new Movie("<唐人街探案>",8.5,"王宝强,刘昊然"));
movies.add(new Movie("<刺杀小说家>",8.6,"杨幂,雷佳音"));
System.out.println(movies);
for (Movie movie : movies) {
System.out.println(movie);
}