Collection接口
理解
Collection接口-定义了存取对象的方法。
- 两个非常常用的子接口:
- List接口:存放的元素有序且允许有重复的集合接口。
- Set接口:存放的元素无序不包含重复的集合接口,所有的重复内容是靠hashCode()和euqals()两个方法区分的。
说明:
“元素”-对象,实例
“重复”-两个对象通过equals相等。
“有序”-元素存入的顺序与取出的顺序相同。
常用方法
1、 int size(); 返回此collection中的元素数。
2、 boolean isEmpty(); 判断此collection中是否包含元素。
3、 boolean contains(Object obj); 判断此collection是否包含指定的元素。
4、 boolean contains(Collection c); 判断此collection是否包含指定collection中的所有元素。
5、 boolean add(Object element); 向此collection中添加元素。
6、 boolean addAll(Collection c);将指定collection中的所有元素添加到此collection中
7、 boolean remove(Object element); 从此collection中移除指定的元素。
8、 boolean removeAll(Collection c); 移除此collection中那些也包含在指定collection中的所有元素。
9、 void clear(); 移除些collection中所有的元素。
10、 boolean retainAll(Collection c); 仅保留此collection中那些也包含在指定collection的元素。
11、 Iterator iterator(); 返回在此collection的元素上进行迭代的迭代器。
12、 Object[] toArray(); 把此collection转成数组。
Demo.java
public class Demo {
public static void main(String[] args) {
// 声明一个集合
Collection collection = new ArrayList();
collection.add("第一个元素");
collection.add("第二个元素");
collection.add(1);// 存一个integer类型的对象,自动打包
collection.add(true);// Boolean
// 判断是否为空
System.out.println(collection.isEmpty());
// 判断元素是否在集合中
System.out.println(collection.contains("第一个元素"));
// 获取集合长度(元素个数)
System.out.println(collection.size());
// 移除指定元素
System.out.println(collection.remove("2"));
// 清空所有元素
// collection.clear();
Iterator iterator = collection.iterator();// 返回与这个集合关联的迭代器
// 返回迭代器后面是否还有元素
// Object obj = iterator.next();// 跳过下一个元素,返回一个元素的引用
// System.out.println(obj);
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
Demo2.java
public class Demo2 {
public static void main(String[] args) {
Collection<String> names = new ArrayList<String>();
names.add("志玲");
names.add("凤姐");
names.add("思聪");
names.add("冠希");
Iterator<String> iterator = names.iterator();
while (iterator.hasNext()) {
String name = iterator.next();
// iterator.remove();// 移除刚刚迭代的元素,可以在迭代的过程中移除
System.out.println(name);
}
}
}
注意:
1.在迭代元素的过程中,移除元素只能使用迭代器的remove方法,移除刚刚next过的那个元素(先next再remove)
2.在迭代元素的过程中,禁止使用集合对象的remove方法
3.迭代的过程中,除了调用迭代器的remove方法,避免添加元素
4.集合在判断一个对象是否存在,调用了这个对象equals方法,然后把集合中的元素作为参数传入,返回true,则认为相等