概述
数组中存储的是同一类型的元素,可以存储基本数据类型值和对象;集合存储的都是对象,而且对象的类型可以不一致。
集合的框架:
Collection的一些方法
public class CollectionClass {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("野原新之助");
coll.add("不理不理左卫门");
coll.add("究极无敌老太婆");
System.out.println(coll);
boolean re = coll.remove("究极无敌老太婆");
System.out.println(re);
System.out.println(coll);
// coll.clear();
System.out.println(coll);
int size = coll.size();
Object[] objects = coll.toArray();
System.out.println(coll);
System.out.println(size);
for (int i = 0; i < objects.length; i++) {
System.out.println(objects[i]);
}
}
}
Iterator接口介绍
java.util.Iterator接口:迭代器(对集合进行遍历)
两个常用方法:
boolean hasNext():如果仍有元素可以迭代,则返回true
next():返回迭代的下一个元素,取出集合的下一个元素
Iterator迭代器是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式为Iterator iterator() 返回在此collection的元素上进行迭代的迭代器
迭代器的使用步骤:
1.获取迭代器的实现类对象,使用Iterator接口接收(多态)
2.hasNext判断有没有下一个元素
3.next取出集合中的下一个元素
public class IteratorClass {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("妮妮");
coll.add("正男");
coll.add("小新");
coll.add("风间");
Iterator<String> iterator = coll.iterator();
while(iterator.hasNext()) {
String next = iterator.next();
System.out.println(next);
}
System.out.println("=============");
for(Iterator<String> iterator1 = coll.iterator(); iterator1.hasNext();) {
String next1 = iterator1.next();
System.out.println(next1);
}
}
}
ps:for循环的了解即可,不知道具体的实现次数时候用while
迭代器的实现原理
增强for循环(遍历集合和数组)
底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写(JDK1.5+)
Collection extends Iterable:所有的单列几何都可以使用增强for
public interface Iterable 实现这个接口允许对象成为“foreach”语句的目标
格式:for(集合/数组的数据类型 变量名: 集合名/数据名){
sout(变量名);
}
public class StrengthenFor {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4};
for(int i : arr) {
System.out.println(i);
}
System.out.println("============");
ArrayList<String> str = new ArrayList<>();
str.add("小新");
str.add("正男");
str.add("妮妮");
str.add("风间");
for(String st : str) {
System.out.println(st);
}
}
}