1、添加
add(Object obj)
addAll(Collection coll)
2、获取有效元素的个数
int size()
3、清空集合
void clear()
4、是否是空集合
boolean isEmpty()
5、是否包含某个元素
boolean contains(Object obj):是通过元素的equals方法来判断是否是同一个对象,所以对象一般要重写equals方法
boolean containsAll(Collection c):也是调用元素的equals方法来比较的。拿两个集合的元素挨个比较。(并且c要全部在本集合才返回true)
6、删除
boolean remove(Object obj) :通过元素的equals方法判断是否是要删除的那个元素。只会删除找到的第一个元素
boolean removeAll(Collection coll):取当前集合的差集 (就是 删掉本集合和coll的交集部分)
7、取两个集合的交集
boolean retainAll(Collection c):把交集的结果存在当前集合中,不影响c
8、集合是否相等
boolean equals(Object obj):如果是List的话顺序也要一样
9、转成对象数组
Object[] toArray()
拓展:Arrays.asList(arr) 返回一个list
注意,第一个她把整个数组当成一个元素,所以size是1.可以写成asList({123,456})这样size就是2
10、获取集合对象的哈希值
hashCode()
11、遍历
iterator():返回迭代器对象,用于集合遍历
Collection接口继承了java.lang.Iterable接口,该接口有一个iterator()方法,那么所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象。所以iterator不是容器,是迭代器。集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。
三个方法:boolean hasnext() / E next() / void remove()
Iterator iter = coll.iterator();
while(iter.hasNext()){ //不用hasNext如果超出的话会报 NoSuchElementException异常
Object obj = iter.next();
//这个remove方法是迭代器的remove方法不是集合的remove方法
if(obj.equals("Tom")){iter.remove();}
}
如果还未调用next()或在上一次调用 next 方法之后已经调用了 remove 方法,再调用remove都会报IllegalStateException。
拓展:加强循环
可以遍历数组或者集合
Person person相当于声明一个变量,persons是集合名,自动遍历里面每一个元素然后赋值给person变量。这个加强循环实际上底层还是调用Iterator完成操作。
注意:
第一个是gg 增强for循环结果是mm(没改到)。因为加强循环是把arr的元素赋值给s,s被改了,但是不是本身arr[i]被改了。