### 集合与数组
(1)数组 集合都是容器,都可以存储多个数据
(2)数组集合都可以存储引用类型
(3)数组长度不可变 集合长度可变
(4)集合如果要存储基本类型,需要存储对应的包装类型
Collection 遍历toArray() clear()
public class Demo01Collection {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("Hello");
Collection<String> subColl = new ArrayList<>();
subColl.add("Java");
subColl.add("Python");
coll.addAll(subColl);
coll.remove("Python");
System.out.println("集合中是否包含Java: "+coll.contains("Java"));
System.out.println("集合是否为空? "+coll.isEmpty());
System.out.println("集合元素数量: "+coll.size());
}
public class Demo01Collection {
public static void main(String[] args) {
for (int i = 0; i < coll.size(); i++) {
}
Object[] array = coll.toArray();
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
System.out.println("-----------");
coll.clear();
System.out.println("集合是否为空? "+coll.isEmpty());
System.out.println("集合元素数量: "+coll.size());
}
}
遍历Collection- 获取迭代器接口Iterator的实现类对象it
遍历Collection- 获取迭代器接口Iterator的实现类对象it
4.迭代器接口Iterator的实现类对象it调用hasNext方法,判断是否具有下一个元素
如果有: 迭代器接口Iterator的实现类对象it调用next方法,获取下一个元素并输出
public class Demo04Iterator {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("Hello");
coll.add("World");
coll.add("Java");
Collection<Student> coll2 = new ArrayList<>();
coll2.add(new Student("张三", 18));
Iterator<String> it = coll.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println("元素: "+str);
}
}
}
Collection是接口,但是我们常用的是其子接口List和Set remove()
ArrayList查询快增删慢 linkedlist 查询慢增删快
子接口List必然集合父接口Collection List毕竟是接口,要使用它的常用实现类ArrayList集合
ArrayList集合既然是List接口的实现类,必然实现接口,覆盖重写抽象方法
List<E>子接口: 特点: 1.有序: 保证存入和取出元素的顺序是一致的 2.有索引 3.可重复
Set<E>子接口: 特点: 1.无索引 2.不可重复
hashset 无序 linkedhashset 有序
迭代器的使用步骤:
1.创建Collection集合对象
2.向Collection集合对象中添加元素
3.Collection集合对象调用iterator方法,获取迭代器对象
4.获取迭代器对象调用hasNext方法判断是否具有下一个元素
5.如果有下一个元素: 迭代器对象调用next方法,获取下一个元素并输出
6.如果没有元素: 结束迭代过程
并发修改异常
public class Demo04IteratorException {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("AAA");
list.add("BBB");
list.add("CCC");
list.add("DDD");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
if ("BBB".equals(s)) {
it.remove();
}
}
System.out.println(list);
}
}