Java Collection 接口


Collection

  • 定义了对集合进行基本操作的一些通用方法,是Set 接口和 List 接口的父接口,List 接口Set 接口 可以调用这些方法;
  • Collection不能实例化,可以通过 ArrayList 实现类来调用 Collection 接口的方法;
  • 任何对象加入集合后如果不加泛型约束(即泛化)都会自动转变为 Object 类型,所以在取出的时候要强制类型转换;

1. API

类型 方法 说明
boolean add(E e) 向集合中添加一个元素,元素数据类型是E
boolean addAll(Collection c) 将集合中的所有元素添加到集合c
boolean remove(Object o) 删除此集合中指定元素o
boolean removeAll(Collection c) 删除此集合中所有在集合c中的元素
void clear() 删除此集合中的所有元素
int size() 返回此集合中的元素个数
Iterator iterator() 返回一个Iterator对象(迭代器),用于遍历此集合中的所有元素
boolean contains(Object o) 判断此集合中是否包含元素o
boolean containsAll(Collection c) 判断此集合中是否包含集合c中的所有元素
boolean retainAll(Collection c) 保留此集合和指定集合c中都出现的元素
Object [ ] toArray() 返回此集合中所有元素的数组

2. Iterator()

  • 所有实现 Collection 接口的容器类中都有 iterator(),集合改变 iterator() 要重新赋值:
  • 详见 Java Iterator 迭代器

3. addAll()

  • 添加指定集合的所有对象;

Java 实例

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class test {
    public static void main(String[] args) {
        String a = "A";
        String b = "B";
        Collection<String> list = new ArrayList<String>();
        list.add(a);
        list.add(b);

        Collection<String> list2 = new ArrayList<String>();
        list2.addAll(list);

        Iterator<String> it = list2.iterator();
        while (it.hasNext()) {
            String str = it.next();
            System.out.print(str+" ");
        }
    }
}

4. containsAll()

  • 查看是否存在指定集合的所有对象,用来检验 addAll();

Java 实例

import java.util.ArrayList;
import java.util.Collection;

public class test {
    public static void main(String[] args) {
        String a = "A";
        String b = "B";
        String c = "C";
        Collection<String> list = new ArrayList<String>();
        list.add(a);
        list.add(b);
        Collection<String> list2 = new ArrayList<String>();
        list2.add(b);
        list2.add(c);
        list2.retainAll(list);
        System.out.println(list2.containsAll(list));//false
    }
}

5. removeAll()

  • 移除交集,与 retainAll() 相反;

Java 实例

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class test {
    public static void main(String[] args) {
        String a = "A";
        String b = "B";
        String c = "C";
        Collection<String> list = new ArrayList<String>();
        list.add(a);
        list.add(b);
        Collection<String> list2 = new ArrayList<String>();
        list2.add(b);
        list2.add(c);
        list2.removeAll(list);
        Iterator<String> it = list2.iterator();
        while (it.hasNext()) {
            System.out.print(it.next() + " ");//输出结果:C
        }
    }
}

6. retainAll()

  • 保留交集,移除交集的补集,与 removeAll() 相反;

Java 实例

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class test {
    public static void main(String[] args) {
        String a = "A";
        String b = "B";
        String c = "C";
        Collection<String> list = new ArrayList<String>();
        list.add(a);
        list.add(b);
        Collection<String> list2 = new ArrayList<String>();
        list2.add(b);
        list2.add(c);
        list2.retainAll(list);
        Iterator<String> it = list2.iterator();
        while (it.hasNext()) {
            System.out.print(it.next() + " ");//输出结果:B
        }
    }
}

7. toArray()

  • 返回一个包含所有对象的指定类型的数组;
  • 必须先初始化一个指定容量的数集,类型满足泛化类型;

Java 实例

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class test {
    public static void main(String[] args) {
        String a = "A";
        String b = "B";
        String c = "C";
        Collection<String> list = new ArrayList<String>();
        list.add(a);
        list.add(b);
        String temp[] = new String[1];
        String str[] = list.toArray(temp);
        System.out.println(Arrays.toString(str));
    }
}
发布了59 篇原创文章 · 获赞 60 · 访问量 1602

猜你喜欢

转载自blog.csdn.net/Regino/article/details/104497785