• Java集合


    集合(java.util.*):里面可以存放任意个对象的容器,该容器可以对里面的元素进行操作。

    Collection:它是集合的根部接口。

      该接口下的子接口为:

      List:

        ArrayList

        LinkedList

        Vector

      Set:

        HashSet

        TreeSet

        LinkedHashSet

    Collection下常见的方法是:

      add(Object o)  //添加元素

      remove(Object o)  //移除元素

      clear()  //清空元素

      size()  //获取容器的长度

      constains(Object o)  //判断容器中是否包含o元素

    遍历Collection集合中元素可以使用增强循环(foreach) 和迭代器Iterator
      for(每个元素的类型 变量 : 集合名或者数组名){

      }

      Iterator iterator():返回迭代器接口
      Iterator接口下有两个方法:
      boolean hasNext():判读是否还有可迭代的元素
      Object next():获取迭代的元素

    List:属于Collection接口的子接口
    特点: 有序的,而且可以存放重复元素。
      add(int index, E element) :
      remove(int index); 根据下标删除元素。
      set(index,element);替换指定位置上的元素。
      get(index): 获取指定位置上的元素。
      List<E> subList(int fromIndex,int toIndex):截取list集合。

    遍历集合List: 三种
    1.根据下标

    2.foreach

    3.迭代器 iterator

    Set:属于Collection接口的子接口
    特点:无序的,元素不可以重复。
    它的方法和父类一样.

    ArrayList:
    LinkedList:
    Vector:
    //80% 使用的是ArrayList

    ArrayList , LinkedList和Vector的区别
    他们都是List接口的实现类,但是ArrayList底层结构为数组结构,便于查找元素,不便于增加和删除元素。线程不安全,效率高。
    LinkedList它的底层结构是一个链表结构,便于增加和删除,不便于查询。
    Vector:底层结构也是数组结构,便于查找元素,不便于增加和删除元素。 线程安全,效率慢。

    1.你有没有看过HashSet的源码?看过。如何进行元素的比较。
    HashSet: 底层结构为哈希表,以哈希表先进行比较,如果哈希表相同,再判读equals方法是否相同。如果两者都相同视为同一元素。元素允许为null

    2.TreeSet: 1.TreeSet中添加的元素类型要一致。 2.添加的元素必须具备可比性。
    可比性:1.自然排序。该定义类可改。Comparable
    2.定制排序。该类无法修改时,使用。Comparator

    Collections: 集合的工具类。该类中所有的方法都是static方法。 可以操作集合。
    static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) :
    使用二叉搜索算法搜索指定对象的指定列表。
    static void reverse(List<?> list)
    反转指定列表中元素的顺序。
    sort(List<T> list) :为list排序 前提T类型必须具备排序功能
    sort(List<T> list,Comparator com) :

    Map:接口。键值对集合。Map没有实现Collection接口
    HashMap:
    put(k,v);
    size();
    remove(k);
    get(k);
    keySet():获取map中所有的键。 返回Set集合类型。
    遍历Map. 获取map中所有的键。 遍历所有的键。

    HashTable和HashMap区别:
    0.都是Map接口的实现类。
    1.HashMap允许键值为null。HashTable不允许键值为null;
    2.HashMap线程不安全,但是效率高,HashTable线程安全,但是效率低。

  • 相关阅读:
    python如何打开一个大文件?
    python中的多进程与多线程(二)
    python中的多进程与多线程(一)
    python中的深拷贝与浅拷贝
    2018 pycharm最近激活码
    python中的新式类与旧式类
    用python优雅打开文件及上下文管理协议
    解决Mac上安装mysqlclient的错误
    用python实现一个简单的服务器
    高阶函数
  • 原文地址:https://www.cnblogs.com/zjc364259451/p/11203262.html
Copyright © 2020-2023  润新知