我是靠谱客的博主 简单柠檬,最近开发中收集的这篇文章主要介绍Java进阶 -- 集合总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

集合的体系结构

  • 单列集合:Collection接口
    List接口
    Set接口
  • 双列集合:Map接口

List集合

  • list集合的特征:
    1、有序
    2、元素可以重复
    3、有索引

  • ArrayList集合(重点*****)
    底层:数组结构,查询快,增删慢。
    常用的方法:

    1. 增/添加:
      boolean add(E e):添加一个元素到集合末尾,返回值表示是否添加成功,默认都是返回true。
      void add(int index,E e):在指定索引index处添加元素e。

    2. 删/移除:
      void remove(E e):直接移除元素。
      E remove(int index):移除指定索引index处的值,返回值是被移除的元素

    3. 改/设置:
      E set(int index,E e):将索引index处的值设置为新元素e,返回值是被修改的元素

    4. 查/获取:
      E get(int index):或者指定索引index处的值。
      int size():获取集合的长度。

    5. 两种重要遍历方式:
      for(int i=0;i<list.size();i++){
      E e=list.get(i);
      }
      --------------------------------
      for(E e:list集合对象){

       }
      

    注意事项:在增强for循环中,不能添加元素和移除元素,否则出现并发修改异常。如果在遍历的过程中需要添加元素或者移除元素,那么使用fori的方式遍历,通过可以考虑倒着遍历。

  • LinkedList集合:
    底层:链表结构,查询慢,增删快。

    Set集合

  • Set集合的特征:
    1、无序
    2、元素不能重复
    3、没有索引

  • HashSet集合:(重点*****)
    底层结构:哈希表结构=数组+链表
    常用方法:
    都是Collection结构中的通用方法。add() remove() size()

  • HashSet集合中存储元素唯一的条件:
    元素要重写hashCode()和equals()方法。

  • LinkedHashSet集合:
    特殊:有序,指的是存和取的顺序一致。
    底层:链表+哈希表结构
    LinkedHashSet集合中存储元素唯一的条件:
    元素要重写hashCode()和equals()方法。

  • TreeSet集合:
    特殊:集合中的元素默认会自然排序。
    底层结构:树结构
    实现元素排序的条件:
    1、元素实现Comparable接口,重写compareTo()方法,在该方法中定义排序规则。
    2、元素不需要实现Comparable接口,但是在创建TreeSet集合时,构造方法中需要传递一个Comparator比较器对象,在比较器的
    compare方法中定义比较规则。
    比较规则:
    自己和别人比表示升序,别人和自己比表示降序,比较结果为0,则表示相等,如果所有条件到相等,那么值会覆盖。
    泛型:要求大家在使用api的过程中,如果api有泛型,那么我们只要会确定泛型的具体类型即可,例如使用ArrayList。
    概念:将数据的类型参数化。

  • 泛型的分类:
    泛型类:在类名后面定义泛型,在这个类中任何地方都可以使用该泛型。 例如:public class 类名{}
    泛型方法:
    泛型接口:

Map集合

  • 可变参数
    概念:类型确定,参数的个数不确定就叫做可变参数。
    用途:在定义方法的时候,如果参数的类型确定,数量不确定,那么就可以使用可变参数。
    语法:public static 返回值类型 方法名(数据类型… 变量名){}
    注意实现:一个方法的参数列表中只能有一个可变参数,并且可变参数位于参数列表的末尾。
  • Map集合-HashMap集合
    常用的方法:
    增/添加/替换/修改:
    V put(K key,V value):添加元素获取替换元素,如果key不存在返null,如果key存在,那么返回被替换的值。
    删/移除:
    V remove(K key):根据key移除元素,返回值为被移除的元素值。
    查/获取:
    V get(K key):根据key获取对应的value值。
    Set keySet(): 获取所有的key,保存到set集合中,用于遍历map集合
    Set<Map.Entry<K,V>> entrySet():获取所有的键值对对象,用于遍历map集合
    • 两种重要遍历方式:
      方式1:键找值的方式
      Set keys=map.keySet();
      for(K key:keys){
      //根据key获取对应的value值
      V value=map.get(key);
      }
      --------------------------------
      方式2;键值对对象的方式
      Set<Map.Entry<K,V>> entries= map.entrySet()
      for(Map.Entry<K,V> entry:entries){
      K key=entry.getKey();
      V value=entry.getValue();
      }
  • Collections集合工具类
    1 Collection和Collections的区别?
    Collection是单列集合的顶层接口,Collections是操作集合的工具类。
    2 Collections的常用方法:
    static void shuffle​(List<?> list):随机打乱集合中元素的顺序。
    static <T extends Comparable<? super T>> void sort​(List list):
    对list集合中的元素进行自然排序,list集合中的元素必须要实现Comparable接口
    static void sort​(List list, Comparator<? super T> c):
    对list集合中的元素使用Comparator比较器进行排序

最后

以上就是简单柠檬为你收集整理的Java进阶 -- 集合总结的全部内容,希望文章能够帮你解决Java进阶 -- 集合总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部