Java集合Collection接口中的常用方法演示
- 添加 add(Objec tobj) 和 addAll(Collection coll)
- 获取有效元素的个数 int size()
- 清空集合 void clear()
- 是否是空集合 boolean isEmpty()
- 是否包含某个元素 boolean contains(Object obj) 和 boolean containsAll(Collection c)
- 删除 boolean remove(Object obj) 和 boolean removeAll(Collection coll)
- 取两个集合的交集 boolean retainAll(Collection c)
- 集合是否相等 boolean equals(Object obj)
- 转成对象数组 Object[] toArray()
- 获取集合对象的哈希值
- 遍历 iterator()
由于接口不可以创建对象,所以,以下方法的演示将以Collection接口的子接口List的实现类ArrayList()进行演示。
添加 add(Objec tobj) 和 addAll(Collection coll)
(1)add(Objec tobj)添加一个对象,如果是基本数据类型,则自动装箱。
ArrayList list1 = new ArrayList();
Date date = new Date();
list1.add(1);//基本数据类型自动装箱
list1.add(date);//引用数据类型
System.out.println(list1);
输出结果
(2)addAll(Collection coll)添加一个集合。
ArrayList list1 = new ArrayList();
list1.add("张三");
list1.add(123);
ArrayList list2 = new ArrayList();
list2.add("李四");
list2.add(55);
list1.addAll(list2);//将集合list2加到集合list1中
System.out.println(list1);
输出结果
获取有效元素的个数 int size()
int size()
ArrayList list1 = new ArrayList();
Date date = new Date();
list1.add(1);
list1.add(date);
System.out.println(list1.size());
输出结果
清空集合 void clear()
void clear()
ArrayList list1 = new ArrayList();
Date date = new Date();
list1.add(1);
list1.add(date);
list1.clear();//清空集合
System.out.println(list1.size());//输出元素个数
输出结果
是否是空集合 boolean isEmpty()
boolean isEmpty()
ArrayList list1 = new ArrayList();
Date date = new Date();
System.out.println(list1.isEmpty());//未添加元素,判断是否是空集合
list1.add(1);
list1.add(date);
System.out.println(list1.isEmpty());//添加完元素,判断是否是空集合
输出结果
是否包含某个元素 boolean contains(Object obj) 和 boolean containsAll(Collection c)
(1)boolean contains(Object obj):是通过元素的equals方法来判断是否是同一个对象。
ArrayList list1 = new ArrayList();
Date date = new Date();
list1.add(1);
list1.add(date);
System.out.println(list1.contains(1));
输出结果
(2)boolean containsAll(Collection c):也是调用元素的equals方法来比较的。拿两个集合的元素挨个比较。
ArrayList list1 = new ArrayList();
ArrayList list2 = new ArrayList();
//list1赋值
list1.add(1);
list1.add("张三");
//list2赋值
list2.add(1);
list2.add("张三");
System.out.println(list1.containsAll(list2));
输出结果
注意:如果是自定义对象,则需要在对象中重写Object的equals方法,否则比较的是地址。重写后比较的是属性的值。
删除 boolean remove(Object obj) 和 boolean removeAll(Collection coll)
(1)boolean remove(Object obj) :通过元素的equals方法判断是否是要删除的那个元素。只会删除找到的第一个元素。
ArrayList list1 = new ArrayList();
list1.add("张三");
list1.add("李四");
list1.add("张三");
list1.add("张三");
list1.add("张三");
list1.remove("张三");//在集合list1中删除元素"张三"
System.out.println(list1);
输出结果
(2)boolean removeAll(Collection coll):取当前集合的差集。(即A-B=A-AB)
ArrayList list1 = new ArrayList();
ArrayList list2 = new ArrayList();
list1.add("张三");
list1.add("李四");
list2.add("王五");
list2.add("李四");
list1.removeAll(list2);
System.out.println(list1);
输出结果
取两个集合的交集 boolean retainAll(Collection c)
boolean retainAll(Collection c):把交集的结果存在当前集合中,不影响c。
ArrayList list1 = new ArrayList();
ArrayList list2 = new ArrayList();
list1.add("张三");
list1.add("李四");
list2.add("王五");
list2.add("李四");
list1.retainAll(list2);
System.out.println(list1);
输出结果
集合是否相等 boolean equals(Object obj)
boolean equals(Object obj)
ArrayList list1 = new ArrayList();
ArrayList list2 = new ArrayList();
list1.add("张三");
list1.add("李四");
list2.add("张三");
list2.add("李四");
System.out.println(list1.equals(list2));
输出结果
注意:该原理是调用集合元素的equals方法进行比较,如果集合元素是自定义对象,则必须要重写equals方法,否则比较的是地址值。
转成对象数组 Object[] toArray()
Object[] toArray()
ArrayList list1 = new ArrayList();
list1.add("张三");
list1.add("李四");
Object[] objects = list1.toArray();
获取集合对象的哈希值
hashCode()
ArrayList list1 = new ArrayList();
list1.add("张三");
list1.add("李四");
System.out.println(list1.hashCode());
输出结果
遍历 iterator()
iterator()
ArrayList list1 = new ArrayList();
list1.add("张三");
list1.add("李四");
Iterator iterator = list1.iterator();
while (iterator.hasNext()){
String next = (String) iterator.next();
System.out.println(next);
}
输出结果