IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> JAVA集合知识点总结 -> 正文阅读

[数据结构与算法]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 <>,元素有序

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-14 01:32:52  更:2022-04-14 01:33:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:27:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码