Java从零单排 -- 集合

120 阅读2分钟

集合的应用 Collection

为容纳一组对象,最适宜的选择应当是数组。而且假如容纳的是一系列 基本数据类型,更是必须采用数组。创建数组,我们未必知道创建的数组的大小,这种情况我们将引进集合这一概念。

Collection接口

接下来我将介绍Collection以及其子接口List和Set Collection

    //简单讲解Collection中几个常用的方法
    //返回 集合的大小
    int size();
    //判断集合是否为空
    boolean isEmpty();
    //判断元素是否存在集合中
    boolean contains(Object o);
    //将元素添加到集合类
    boolean add(E e);
    //从集合中移除元素
    boolean remove(Object o);
    //删除集合中的所以元素
    void clear();

List接口

list ArrayList和LinkedList 是目前较常用的List实现类

  • ArrayList 基于数组实现
    ArrayList源码
    private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
    /**
     * Constructs an empty list with an initial capacity of ten.
     */
    public ArrayList() {
        //初始化默认值
        this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
    }

ArrayList 一般用法

     //定义一个只能容纳Firm类型的List集合 ,<>指定类型
        List<Firm> list = new ArrayList();
        //添加一个元素
        list.add(new Firm());
        //获取元素
        Firm firm = list.get(0);
        //删除元素
        list.remove(firm);
        //清空集合
        list.clear();
  • LinkedList 和ArrayList操作一样,只是底层实现不一样,后续将详细讲解

Set接口

Set与List的区别在于,Set里面的元素不重复,List可以重复 Set HashSet和LinkedHashSet 是目前较常用的Set实现类

  • HashSet 无序无重复的集合
  //定义一个只能容纳Firm的Sett集合 ,<>指定类型
        Set<Firm> set = new HashSet<>();
        //添加一个元素
        set.add(new Firm());
        //获取元素要通过迭代器获取
        Firm firm = set.iterator().next();
        //删除元素
        set.remove(firm);
        //清空集合
        set.clear();
  • LinkedHashSet 有序无重复的集合

Map 接口 (字典)

Map就好像我们日常使用的字典一样。平时我们通过拼音来查找对应的字,抽象出来就是拼音跟字有对应关系,在Map中就变成key => value的对应关系了。

Map常用的方法
  //将键值对放进字典内
  //同一键,后者覆盖前者
  V put(K key, V value);
  //根据键获取对应的值
  V get(K key);
  • HashMap:简单介绍下,hash是散乱的意义,HashMap就是一个散乱的字典,没顺序的
  • LinkedHashMap:有序的Map

List 遍历(循环)

        //定义一个只能容纳Firm的List集合 ,<>指定类型
        List<Firm> list = new ArrayList();
        //添加元素
        list.add(new Firm("a"));
        list.add(new Firm("b"));
        list.add(new Firm("c"));
        list.add(new Firm("d"));
        list.add(new Firm("e"));
        //Firm类型 firm变量 :list集合  List遍历的标准形式
        for(Firm firm:list){
            System.out.println(firm.toString());
        }

这章节简单的介绍List的使用,后续实战中会对它有更加深入的讲解