JAVA集合知识点总结

前言:有老师总结真好,照着老师的打一遍理解下,以后能在看。

概念:

  • 集合概念:
    • 保存和盛装数据的容器,将许多元素组合成一个单一单元的容器对象。
  • 集合框架:
    • 表示和操作集合的体系,包括接口、实现类,集合框架的结构图。
  • 接口:Iterable、Iterator、Collection、List、Queue、Set、Map;
  • 类:ArrayList,LinkedList,HashSet,TreeSet,HashMap,TreeMap,Stack;

具体实现:

  1.  java.lang.Iterable接口:实现了此接口类的对象,支持使用Iterable遍历元素及支持For Each循环语句;
  2. Iterator接口:用来遍历集合中的元素,常用方法:
    1. hasNext()//是否下一个元素;
    2. next()//向后移动游标,同时返回游标指向的元素;
    3. remove()//移除当前游标未知的元素;
  3. java.util.Collection接口:用于描述最具用通用性的集合,包含了最具有通用性的集合操作和方法;
    1. boolean add(),向集合添加元素。如调用更改了集合返回true,下同
    2. boolean  addAll(),向集合添加一个集合
    3. boolean remove(),从集合移除中指定元素
    4. boolean  removeAll(),从集合移除包含指定集合
    5. void clear(),移除集合全部元素
    6. boolean contains(),判断集合是否包含指定元素
    7. boolean  containsAll(),判断是否包含包含指定集合
    8. boolean isEmpty(),判断集合是否包含元素
    9. int size() ,集合长度
    10. T[] toArray(,将集合转为指定类型的数组
    11. Iterator<E> iterator(),获取迭代器;
  4. java.util.List集合:有序的,允许包含重复的元素集合。除了从Collection继承的方法外,提供基于位置索引的操作方法:
    1. add(),将指定位置元素后移,添加
    2. set(),替换
    3. get(int index),获取
    4. remove(int index),移除
  5. List集合接口基本实现类,即不同数据结构的实现
    1. java.util.ArrayList,基于对象数组数据结构的实现,用的最多,整体性能好
    2. java.util.LinkedList,基于双向链表数据结构的实现
  6. List与数组的转换:
    1. List to Array  用toArray()方法;
    2. Array to List:Arrays工具类提供asList(T… a)方法 :asList()方法为适配器模式方法,仅转换了类型,底层仍是数组。因此,执行任何修改集合长度方法(add/remove等),将抛出异常
  7. java.util.Map接口:用于存放键值对(key-value),通过Key值获取相应的value值
    1. Map中key必须是唯一的,且每个key只能对应一个value;但不同key,可以对应同一个value;添加key-value时,如果key已经存在,则后一个覆盖前一个。
    2. 支持以任何类型(引用类型)对象为key/value
    3. 基本实现类:
      1. java.util.HashMap,查询效率与内存占用最平衡,非线程安全;
      2. java.util.TreeMap;
      3. java.util.Table
    4. 常用操作方法:
      1. put( key, value),保存键值对
      2. get( key),基于key获取对应的value,如果value不存在,返回null
      3.  getOrDefault(key, VValue),获取对应的value,没有则使用默认值
      4. remove( key) ,去除对应的value值
      5. containsKey(Object key),键是否存在;
      6. containsValue(Object value),值是否存在;
      7. size() ,长度;
      8.  isEmpty(), 是否为空;
    5. 如何判断key相同?重写hashCode()和equals()方法

      String重写了hashCode()/equals()方法,因此直接基于字符串值,而非对象的hash值比较(好像大致意思是判断key相等是用key的直接基于key的字符串值判断)

  8. Set集合:不包含重复元素(数学中集合的抽象)扑克牌,不重复的关系,人,事物等

    是否重复:根据hashCode()/equals()

  9. Set接口:只包含继承自Collection方法,并添加禁止重复元素的限制,无基于索引的操作方法;

    1. 基本实现类:

    2. java.util.HashSet<>,元素无序(底层基于HashMap确定元素是否重复)

    3. java.util.LinkedHashSet<>,元素有序

    4. java.util.TreeSet <>,元素有序

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李小于

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值