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);
    }
}

java collection 元素相等 java collection方法_java

如果添加失败,返回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)));
    }
}

java collection 元素相等 java collection方法_集合_02

如果想要使得第三个对象判断为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));

java collection 元素相等 java collection方法_System_03

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());

java collection 元素相等 java collection方法_集合_04

如果元素类型不相同,那么此时还是将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());

java collection 元素相等 java collection方法_数组_05

Iterator iterator()

返回当前集合的迭代器

int hashCode()

返回当前对象的哈希值,如果没有重写,使用Object类中的hashCode()方法

boolean isEmpty()

判断集合中有无元素

void clear()

清除集合中的元素

int size()

返回集合中元素的个数