Collection常用方法
以下方法对集合做的修改都是直接在原有的集合修改的,并未创建一个新的集合
void add(Object obj)
往集合中添加一个obj元素
boolean addAll(Collection collection)
把一个集合中的元素添加到另一个集合的尾部
public class CollectionMethod {
public static void main(String[] args) {
Collection coll1 = new ArrayList();
coll1.add("abc");
coll1.add(123);
coll1.add(new Person("张三",20));
Collection coll2 = new ArrayList();
coll2.add("cde");
coll2.add(456);
coll1.addAll(coll2);
System.out.println(coll1);
}
}
如果添加失败,返回false,成功与否看定义的数据结构类型要求,例如这里定义的ArrayList可以重复,如果定义的是HashSet要求元素不重复,那么在添加数据时如果添加的集合与第一个集合完全数据重复,则会返回false
boolean contains(Object obj)
判断集合中有无obj对象
注意:判断时会调用类中的equals方法
e.g.
public class CollectionMethod {
public static void main(String[] args) {
Collection coll1 = new ArrayList();
coll1.add("abc");
coll1.add(123);
coll1.add(new Person("张三",20));
//int类型的123自动装箱为Integer并在判断时调用Integer中的equals()方法
System.out.println(coll1.contains(123));
//这里定义的String明显在内存中与add("abc")中的位置不相同,但是contains()方法调用了String //重写的equals()方法,比较的是内容
System.out.println(coll1.contains(new String("abc")));
//这里new了一个person对象,而且person对象也没有重写过equals方法,所以contains方法()方法 //调用的是Object类中的equals()方法,比较两者地址
System.out.println(coll1.contains(new Person("张三", 20)));
}
}
如果想要使得第三个对象判断为true,需要重写Person类中的equals()方法
boolean containsAll(Collection collection)
判断前一个集合有无完全包括后一个集合中的元素,也会调用equals()方法(如上)类似数学中的包含
boolean remove(Object obj)
在原有集合上删除obj元素,如果找不到obj元素,返回false,同样,在寻找obj元素时也会调用其equals()方法
boolean retainAll(Collection collection)
在原有集合上,保留两个集合相同的元素类似数学中的求交集
boolean equals(Object)
判断两个集合是否相等
注意是否相等的判断与定义的数据结构类型有关,例如这里定义的ArrayList,是有序集合,所以元素内容相同但是顺序不相同的话,equals()方法返回的还是false
Collection coll1 = new ArrayList();
coll1.add("abc");
coll1.add(123);
Collection coll2 = new ArrayList();
coll2.add(123);
coll2.add("abc");
System.out.println(coll1.equals(coll2));
boolean removeAll(Collection collection)
在原有集合上删除与参数集合collection相同的元素,如果找不到返回false,类似数学中的差集 - 原有集合减参数集合
Object[ ] toArray()
把集合转换为数组
拓展
把数组转换为集合使用Arrays.asList(T…a),如果参数为基本数据类型的数组,那么把一整个数组看作一个元素,如果想要将一整个数组看作多个元素,可以使用包装类
e.g.
List asList = Arrays.asList(new int[]{1, 2, 3});
System.out.println(asList);
System.out.println("长度"+asList.size());
List asList1 = Arrays.asList(new Integer[]{1, 2, 3});
System.out.println(asList1);
System.out.println("长度"+asList1.size());
如果元素类型不相同,那么此时还是将Integer数组长度看作1
//类型不同,包括String和int[]
List asList = Arrays.asList("abc",new int[]{1, 2, 3});
System.out.println(asList);
System.out.println("长度"+asList.size());
//类型不同,包括String和Integer[]
List asList1 = Arrays.asList("abc",new Integer[]{1, 2, 3});
System.out.println(asList1);
System.out.println("长度"+asList1.size());
Iterator iterator()
返回当前集合的迭代器
int hashCode()
返回当前对象的哈希值,如果没有重写,使用Object类中的hashCode()方法
boolean isEmpty()
判断集合中有无元素
void clear()
清除集合中的元素
int size()
返回集合中元素的个数
















