Java 集合大纲


泛型

  • 概念:
    • 通常用于结合集合来使用,标志就是<>,通常用来检查集合中元素的类型。generic
  • 作用:
    • 1.是可以把报错提前在编译时期,而不是运行时才抛出异常
    • 2.可以写出通用代码

集合

  • Collection
    • 概念
      • 是集合中的父接口,包含两个重要的子接口
    • 源码摘抄
      public interface Collection<E> extends Iterable<E>
      
    • 接口
      • List
        • 特点
          • 元素有序,都有索引,可以重复存放元素,可以存null
        • 源码摘抄
          public interface List<E> extends Collection<E>   
          
        • 特有方法
              -void add(int index, E element)
              -void add(int index, E element)
              -boolean addAll(int index, Collection<? extends E> c)
              -E get(int index)
              -int indexOf(Object o)
              -int lastIndexOf(Object o)
              -ListIterator<E> listIterator()
              -ListIterator<E> listIterator(int index)
              -E remove(int index)
              -E set(int index, E element)用指定元素替换列表中指定位置的元素(可选操作)。
               -List<E> subList(int fromIndex, int toIndex) 返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图
          
        • 实现类
          • ArrayList
            • 源码摘抄
              public class ArrayList<E> extends AbstractList<E> implements List<E>
              
            • 特点
              • 元素有序,都有索引,可以重复存放元素,可以存null
              • 底层维护了一个Object[],里面存的都是Object对象
              • 数组的默认容量是10,超出容量是底层会自动完成扩容
                • 扩容方式源码截抄:int newCapacity = oldCapacity + (oldCapacity >> 1);
              • 新的容量=老容量+老容量/2的1次方,就相当于扩容是1.5倍的方式
            • 创建对象
              ArrayList();构造一个初始容量为10的空列表
              
          • LinkedList
            • 特点
              • 底层维护了一个链表,适合新增和删除的业务,不适合查询
              • 数据有序,有下标,可重复
            • 源码摘抄
              public class LinkedList<E>extends AbstractSequentialList<E>
              
            • 创建对象
              LinkedList()
              

Set

  • 源码摘抄:
    public interface Set<E> exnteds Collection<E>
    
  • 特点:
    • 元素不能重复
    • 元素没有下标
    • 元素无序
  • 接口
    • HashSet
      • 概述
        • 底层是一个哈希表/散列表
      • 源码摘抄:
         public class HashSet<E> extends AbstractSet<E> implements Set<E>,Cloneable,Serializable
        
      • 创建对象:
        -HashSet()构造一个新的空set,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75

Map

  • 源码摘抄
     public interface Map<K,V>
    
  • 概述
    • 将键映射到值的对象,是一个键值对的形式出现,键不能重复,每个键对应一个值
    • 特点
      • 可以根据键,提供对应的值
      • 键不允许重复,如果重复值会被覆盖
      • 存放的都是无序数据
      • 初始容量是16,默认的加载因子是0.75
    • 常用方法:
      - V put(K key, V value)
      - V get(Object key)
      - void clear()
      -boolean containsKey(Object key)
      -boolean containsValue(Object value)
      -boolean equals(Object o)
      -int hashCode()
      -boolean isEmpty()
       -V remove(Object key)
      -int size()
      -Collection<V> values()
      -void putAll(Map<? extends K,? extends V> m)
      -Set<Map.Entry<K,V>> entrySet()
      -Set<K> keySet()
      

Colletcions工具类

  • 常用方法:

    -Collections.sort(List<> list):根据元素的自然顺序 对指定列表按升序进行排序。
    -Collections.max():根据元素的自然顺序,返回给定 collection 的最大元素。
    -Collections.min():根据元素的自然顺序 返回给定 collection 的最小元素。
    -Collections.swap(List,i,j):在指定列表的指定位置处交换元素。
    -Collections.addAll()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值