• Java Collection集合


    一.集合概述

    集合,就类似一个容器,可以存储多个数据。

    之前学习的数组也是一种容器,而集合与数组主要区别在于:

    • 数组的长度是固定的,集合的长度是可变的
    • 数组存储的是同一类型的元素,主要是基本类型,而集合存储的都是对象,而且对象的类型可以不一致

    Java的集合按照存储结构可以分为两类:单列集合Collection和双列集合Map,两类集合都在java.util包中。

    java.util包主要提供了三种类型的集合:

    • List:一种元素有序,元素可重复的集合
    • Set:一种没有重复元素,元素无序的集合
    • Map:一种存储键值对的集合

    Java集合的设计有两个特点:

    • 实现了接口和实现类的分离,比如有序表的接口是List,具体实现类有ArrayList,LinkedList等
    • 支持泛型,可以限制一个集合只能存储同一种类型的元素

    Java中提供了丰富的集合类库,以下为Collection的继承体系:

    Collection.png

    二.Collection集合的通用方法

    Collection类是所有单列集合的父接口,其定义了一些通用方法,可以用于所有的单列集合。

    主要有以下方法(不是全部):

    • boolean add(E e):把给定的对象添加到当前集合中
    • void clear():清空集合中所有的元素
    • boolean remove(Object o):把给定对象在当前集合中删除,删除成功返回true,失败返回false
    • boolean contains(Object o):判断当前集合中是否包含给定的对象,包含返回true,不包含返回false
    • boolean isEmpty():判断当前集合是否为空,为空返回true,不为空返回false
    • int size():返回集合中元素的个数
    • Object[] toArray():把集合中的元素存储到数组中
    import java.util.*;
    
    public class CollectionTest {
        public static void main(String[] args) {
            // 使用多态创建
            Collection<String> c = new ArrayList<String>();
    
            // 添加元素
            c.add("张三");
            c.add("李四");
            c.add("王五");
    
            System.out.println(c);  // 输出:[张三, 李四, 王五]
    
            // 判断是否包含一个"李四"的元素
            System.out.println(c.contains("李四")); // 输出:true
            // 删除"李四"
            boolean ret = c.remove("李四");
            System.out.println("删除李四成功?:" + ret);   // 输出:删除李四成功?:true
            // 再判断一次
            System.out.println(c.contains("李四")); // 输出:false
    
            // 判断集合是否为空
            System.out.println(c.isEmpty());    // 输出:false
    
            // 返回集合的个数
            System.out.println(c.size());   // 输出:2
    
            // 将集合转换为数组
            Object[] array = c.toArray();
            for(int i = 0; i < array.length; i++) {
                System.out.print(array[i] + " ");
            }// 输出:张三 王五
            System.out.println();
            // 清空集合
            c.clear();
    
            // 判断集合是否为空
            System.out.println(c.isEmpty());    // 输出:true
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
  • 相关阅读:
    winform C#键盘钩子(Hook)拦截器,屏蔽键盘深入解析
    嵌入式 Linux 入门(七、Linux 下的环境变量)
    使用go语言获取阿里云oss临时授权,实现小程序直传文件到阿里云oss
    关于重写equals方法引发的不一致
    基于安卓android微信小程序的好物分享系统
    【mysql篇-基础篇】通用语法1
    【Redux】异步action与同步action
    快速排序模板
    Linux-多路转接-epoll
    Shell命令
  • 原文地址:https://blog.csdn.net/chisuisi5702/article/details/126284927