java.util.Collection
Collection中能存放什么元素:没有使用泛型之前,Collection中可以存放Object的所有子类型;是由泛型之后,Collection中只能存储某个具体的类型。
只要是Object的子类都可以存放到Collection中。(集合中不能直接存储基本数据类,也不能存java对象,只能存储java对象的内存地址)。
import java.util.ArrayList;
import java.util.Collection;
public class CollectionTest {
public static void main(String[] args) {
// 创建一个集合对象
// Collection c = new Collection();// 接口是抽象的,不能创建对象
// 多态
Collection c = new ArrayList();
// 测试Collection接口中常用方法
// 存放的是对象的内存地址
// 自动装箱 相当于Integer x = new Integer(1200);
c.add(1200);
c.add(new Object());
c.add(true);
// 获取集合中元素的个数
System.out.println("集合中元素的个数:" + c.size());//3
// 清空集合
c.clear();
System.out.println("集合中元素的个数:" + c.size());//0
c.add("hello world");// 存的是内存地址
c.add("鳄鱼君");
// 判断集合中是否包含元素
boolean b1 = c.contains("鳄鱼君");
System.out.println(b1);//true 包含
// 移除集合中某个元素
c.remove("鳄鱼君");
boolean b2 = c.contains("鳄鱼君");
System.out.println(b2);// false
}
}
contains方法是用来判断集合中是否包含某个元素的方法,底层是调用equals方法进行比对的,equals返回true就表示包含这个元素,remove方法也是这样
import java.util.ArrayList;
import java.util.Collection;
public class CollectionTest {
public static void main(String[] args) {
// 创建一个集合对象
// Collection c = new Collection();// 接口是抽象的,不能创建对象
// 多态
Collection c = new ArrayList();
c.add(1200);
// 判断集合是否为空
System.out.println(c.isEmpty());//false
c.clear();
System.out.println(c.isEmpty());//true
c.add("鳄鱼君1");
c.add("鳄鱼君2");
// 转换成数组
Object[] objs = c.toArray();
for (int i = 0; i < objs.length; i++) {
System.out.println(objs[i]);
}
}
}
集合迭代:import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionTest {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add(1200);
c.add("abc");
c.add(true);
c.add(1);
c.add(1);
c.add(new Object());
// 对集合Collection进行遍历/迭代
// 获取集合对象的迭代器对象Iterator
Iterator iterator = c.iterator();
// 迭代数据
// 存进去什么类型,取出来还是什么类型,只不过在输出的时候会转成字符串
while (iterator.hasNext()){
Object obj = iterator.next();
System.out.println(obj);
}
}
}
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class CollectionTest {
public static void main(String[] args) {
// 无序不可重复,存进去和取出的顺序不一定相同
Collection c = new HashSet();
c.add(1200);
c.add(3);
c.add(1);
c.add(2);
c.add(1);
c.add(3);
c.add(2);
Iterator iterator = c.iterator();
while (iterator.hasNext()){
Object obj = iterator.next();
System.out.println(obj);
}
}
}
当集合的结构发生改变时,迭代器必须重新获取,如果还是使用以前的迭代器,会出现异常:java.util.ConcurrentModificationExceptionimport java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionTest {
public static void main(String[] args) {
// 无序不可重复,存进去和取出的顺序不一定相同
Collection c = new ArrayList();
c.add(1);
c.add(2);
c.add(3);
c.add(3);
Iterator iterator = c.iterator();
while (iterator.hasNext()){
Object obj = iterator.next();
// 删除元素,集合元素结构发生改变,需要重新获取迭代器
// 直接通过集合去删除元素,没有通知迭代器
// 导致迭代器的快照和原集合状态不同
// c.remove();
// 使用迭代器来删除元素,迭代器指向的当前元素
iterator.remove();
System.out.println(c.size());
}
}
}
声明:1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!