Collection 类的实用方法 --《JAVA编程思想》 67

今天和大家分享 Collection 类的使用方法,这些方法同样适用于实现了 Collection 接口的 Set 和 List 。

1.添加单个元素

add(T) 用于添加持有泛型 T 的参数。

    public static void main(String[] args) {
    
    
        Collection<String> c = new ArrayList<String>();
        c.add("China");
        System.out.println(c);
    }
[China]

2.批量添加元素

addAll(Collection<? extends T>) 用于批量添加元素。

    public static void main(String[] args) {
    
    
        Collection<String> c = new ArrayList<String>();
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("China");
        arrayList.add("USA");
        arrayList.add("UK");
        c.addAll(arrayList);
        System.out.println(c);
    }
[China, USA, UK]

3.清空元素

clear() 用于清空容器内元素。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        System.out.println(c);
        c.clear();
        System.out.println(c);
    }
[China, USA, UK]
[]

4.移除指定元素

remove(Object) 移除指定元素,若元素在容器内,则进行移除返回 true,否则返回 false。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        System.out.println(c);
        System.out.println(c.remove("UK"));
        System.out.println(c.remove("Russia"));
        System.out.println(c);
    }
[China, USA, UK]
true
false
[China, USA]

5.批量移除元素

remove(Collection<?>) 可批量移除参数中的所有元素,只有执行任何一个元素的移除操作则返回 true,否则返回 false。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK", "Russia", "Korea"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        System.out.println(c);
        ArrayList<Object> arrayList = new ArrayList<>();
        arrayList.add("USA");
        arrayList.add("UK");
        arrayList.add("Korea");
        System.out.println(c.removeAll(arrayList));
        System.out.println(c.removeAll(arrayList));
        System.out.println(c);
    }
[China, USA, UK, Russia, Korea]
true
false
[China, Russia]

6.获取元素数目

size() 可获取容器内元素的数目。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK", "Russia", "Korea"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        System.out.println(c.size());
    }
5

7.遍历元素

iterator() 返回一个 Iterator<T> ,可以用来遍历容器内所有元素。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK", "Russia", "Korea"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        Iterator<String> iterator = c.iterator();
        while (iterator.hasNext()){
    
    
            System.out.println(iterator.next());
        }
    }
China
USA
UK
Russia
Korea

8. 判断容器是否为空

isEmpty() 当容器内没有元素的时候返回 true ,否则返回 false。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK", "Russia", "Korea"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        System.out.println(c.toString());
        System.out.println(c.isEmpty());
        c.clear();
        System.out.println(c.isEmpty());
    }
[China, USA, UK, Russia, Korea]
false
true

9.获取元素交集

retainAll(Collection<?>) 只保存参数中的元素,相当于获取两者的交集。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK", "Russia", "Korea"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        System.out.println(c);
        ArrayList<Object> arrayList = new ArrayList<>();
        arrayList.add("USA");
        arrayList.add("UK");
        arrayList.add("Japan");
        System.out.println(arrayList);
        c.retainAll(arrayList);
        System.out.println(c);
    }
[China, USA, UK, Russia, Korea]
[USA, UK, Japan]
[USA, UK]

10.判断是否包含某个元素

contains(Object) 可用于判断容器内是否包含某个元素,存在返回 true,否则返回 false。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK", "Russia", "Korea"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        System.out.println(c.contains("China"));
        System.out.println(c.contains("Japan"));
    }
true
false

11.获取容器构成的数组

toArray() 会返回包含所有元素的 Object 数组。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK", "Russia", "Korea"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        Object[] objects = c.toArray();
        System.out.println(Arrays.toString(objects));
    }
[China, USA, UK, Russia, Korea]

假如我们需要返回相同类型参数的数组,则需要传入对应类型参数的数组作为参数,如 <T> T toArray(T[] a)。作为参数的数组长度若小于等于容器元素个数,则返回数组的长度等于容器元素个数;若作为参数的数组长度大于容器元素个数,多出来的位置则为 null。

    public static void main(String[] args) {
    
    
        String[] countries = {
    
    "China", "USA", "UK", "Russia", "Korea"};
        Collection<String> c = new ArrayList<String>(Arrays.asList(countries));
        String[] s1 = c.toArray(new String[0]);
        System.out.println(Arrays.toString(s1));
        String[] s2 = c.toArray(new String[10]);
        System.out.println(Arrays.toString(s2));
    }
[China, USA, UK, Russia, Korea]
[China, USA, UK, Russia, Korea, null, null, null, null, null]

本次分享至此结束,希望本文对你有所帮助,若能点亮下方的点赞按钮,在下感激不尽,谢谢您的【精神支持】。

若有任何疑问,也欢迎与我交流,若存在不足之处,也欢迎各位指正!

おすすめ

転載: blog.csdn.net/BaymaxCS/article/details/121171266
67