什么是集合?
集合也是一种存放数据的容器,只不过存放的数据类型是对象的引用
集合和数组之间有什么区别?
数组:
- 数组存放相同类型的数据,可存放引用数据类型,基本数据类型
- 数组的长度不可变
集合:
- 数组可存放不同类型的数据,存放引用数据类型。但是由于集合在添加元素的时候有自动装箱的功能,也可以存放基本数据类型
- 集合的长度可变
集合有哪些类型?
Set和List有什么区别?
List
- 有角标
- 按照顺序排列
- 可以有重复数据
Set:
- 无角标
- 不按照顺序排列
- 不可以有重复数据
集合有哪些方法?判断是否是为空
1、判断是否为空
关键词:isEmpty
返回值类型:boolean
代码示例:
boolean b1 = collection.isEmpty();
System.out.println(b1);
System.out.println(collection);
2、添加
关键词:append appendAll
返回值类型:boolean
代码示例:
Collection collection = new ArrayList();
collection.add("wangning");
Collection collection1 = new ArrayList();
collection1.add("henaini");
collection.add(collection1);
collection.addAll(collection1);
System.out.println(collection);
分析:返回值结果都是true
3、删除
关键词:remove removeAll
返回值类型:boolean
代码示例:
Collection collection = new ArrayList();
collection.add("wangning");
collection.add("woaini");
collection.remove("woain");
Collection collection1 = new ArrayList();
collection.add("woain");
System.out.println(collection.removeAll(collection1));
分析:当删除的元素自身集合中没有的时候会返回false
4、包含
关键词:contains containsAll
返回值类型:boolean
代码示例:
Collection collection = new ArrayList();
collection.add("wangning");
collection.add("woaini");
Collection collection1 = new ArrayList();
collection1.add("wangnin");
collection1.add("woain");
System.out.println(collection.contains("wang"));
System.out.println(collection.containsAll(collection1));、
5、保留相同部分
关键词:retainAll
返回值类型:boolean
代码示例:
Collection collection = new ArrayList();
collection.add("wangning");
collection.add("woaini");
Collection collection1 = new ArrayList();
collection1.add("wangning");
collection1.add("woaini");
System.out.println(collection.retainAll(collection1));
分析:当集合在retainAll之后的结果如果发生改变,返回true,如果未发生改变返回false
6、集合长度
关键词:size
返回值类型:int
代码示例:
System.out.println(collection.size());
7、清空集合
关键词:clear
返回值类型:void
代码示例:
collection.clear();
8、转换为数组
关键词:toArray
返回值类型:Object [ ]
代码示例:
Object[] array = collection.toArray();
迭代器
迭代器用于数组的遍历
如何获取迭代器?
Iterator iterator = collection.iterator();
迭代器有哪些方法?
1、判断时候有值
关键词:hasNext( )
返回值类型:
代码示例:
iterator.hasNext()
2、返回集合中的值
关键词:next( )
返回值类型:集合中数值
代码示例:
iterator.next()
如何遍历集合中的元素?
1、使用toArray( )的方法,再将数组中的元素输出
代码示例:
Collection collection = new ArrayList();
collection.add(new Student("wangning",18));//这时候相当于向上转型,student类向上转型为object类,要向下转型
collection.add(new Student("wangning",18));//内部都是object类型的
collection.add(new Student("wangning",18));
//集合转数组,强转数组类型,不能把数组中的元素强转(不能再前面加上student就是要求数组中元素都是student类型)指标不治根
Object [] array = collection.toArray();
for(int x = 0; x< array.length; x++) {
Student student = (Student)(array[x]);//向上转型之后要向下转型
//数组遍历中,要把数组中每一个对象都进行向下转型
System.out.println(student.getName());
}
分析:在这里使用了Student对象,之后被向上转型为Object类型,将集合转换成数组之后数组中的值还是Object类型,在while循环中使用向下转型的操作,才可以使用对象的
getName( )等方法
2、使用iterator迭代器,利用迭代器的方法输出
代码示例:
Collection collection = new ArrayList();
collection.add(new Student("wangning",18));
collection.add(new Student("wangning",18));
collection.add(new Student("wangning",18));
//获取集合中的迭代器
Iterator iterator = collection.iterator();//迭代器中的元素还是object类型的,需要向下转型
//使用迭代器遍历
while(iterator.hasNext()) {
Student student = (Student)(iterator.next());
System.out.println(student.getName());
}
}
分析:在这里获取集合的迭代器,之后使用.hasNext( )作为判断,执行循环,循环中需要向下转型将Object类型-->转型为Student类型,而后使用对象调用Student类中的方法