package com.qianfeng.test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
- 集合:
- 比较集合和数组
- 数组:可以存储多个相同类型的数据,数据类型可以是简单数据类型也可以是引用数据类型。
-
缺点:创建的是一个定值,只能存储固定长度的数据,一旦存满了,就不能再继续存储。 - 集合:可以存储多个相同或者不同的数据,但是只能存储引用数据类型。
-
优点:存储空间会随着存储数据的多少而改变,所以可以更加合理利用内存空间,方法更多,更加方便我们实现功能。 -
缺点:不能存储简单数据类型。 

*/


public class Demo6 {
public static void main(String[] args) {
//Collection中定义是整个集合体系最共性的方法:
Collection collection1 = new ArrayList<>();
//1.添加:
//boolean add(Object o) 一次添加一个元素
collection1.add("java");
collection1.add("html");
collection1.add("python");
System.out.println(collection1);
//boolean addAll(Collection<? extends E> c) 一次添加多个元素
Collection collection2 = new ArrayList<>();
collection2.add("iOS");
collection2.add("BigData");
collection1.addAll(collection2);
System.out.println(collection1);
//2.删除:
//boolean remove(Object o)
System.out.println(collection1.remove("java"));
System.out.println("iOS");
System.out.println(collection1);
//boolean removeAll(Collection<?> c) 删除一批元素,但是collection1中不一定包含collection2中的所有内容,有谁删谁。
collection1.removeAll(collection2);
System.out.println(collection1);
//void clear() --变成空集合 !=null
collection1.clear();
System.out.println(collection1);
//3.判断:
//boolean contains(Object o)
System.out.println(collection1.contains("java"));//false
//boolean containsAll(Collection<?> c)
//boolean isEmpty() //判断集合是否为空 !=null
System.out.println(collection1.isEmpty());//true
//boolean equals(Object o)
System.out.println(collection1.equals(collection2));//false
//4.获取:
//Iterator<E> iterator() //获取集合中的对象
test(collection1);
//int size() //获取集合中对象的个数
System.out.println(collection1.size());
//5.集合变数组:当我们希望集合的长度固定下来的时候,使用这个方法
//Object[] toArray()
Object[] objects = collection1.toArray();
for (Object object : objects) {
System.out.println("object:"+object);
}
}
public static void test(Collection collection){
//4.获取: --迭代器
//Iterator<E> iterator() //获取集合中的对象
/*
* boolean hasnext():判断当前的位置是否存在元素,存在返回true
* Object next():将当前位置的元素返回,并且将指针指向当前位置的指针指向下一个元素
*/
//获取迭代器对象
Iterator iterator = collection.iterator();
//开始调用方法遍历
while(iterator.hasNext()){
Object object = (Object) iterator.next();
System.out.println("String:"+object);
}
//注意点:
//直接再次使用第一次的iterator进行遍历,遍历失败,因为当前的指针已经指向了集合的最后,
//再次使用hasNext(),会直接返回false,所以如果想再次重新遍历,就要重新获取迭代器对象。
while(iterator.hasNext()){
Object object = (Object) iterator.next();
System.out.println("String1:"+object);
}
//2.集合中可以同时存储不同类型的数据
collection.add(2);
System.out.println(collection);
//3.当集合中存在不同的数据类型时,需要进行容错处理和向下转型。
Iterator iterator1 = collection.iterator();
while(iterator1.hasNext()){
Object object = (Object) iterator1.next();
System.out.println("String2:"+object);
//容错处理
if (!(object instanceof String)) {
throw new ClassCastException("类型转换异常");
}
//向下转型
String string = (String)object;
System.out.println(string.length());
}
}
}


140

被折叠的 条评论
为什么被折叠?



