专栏首页cwl_JavaJava基础-集合(一)

Java基础-集合(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/102977980

Java集合
集合架构
  • Collection 接口存储一组不唯一,无序的对象
    • List 接口存储一组不唯一,有序(索引顺序)的对象
    • Set 接口存储一组唯一,无序的对象
    • Map接口存储一组键值对象,提供key到value的映射
      • Key 唯一 无序
      • value 不唯一 无序
List

特点:有序 不唯一(可重复)

ArrayList 线性表中的顺序表
  • 在内存中分配连续的空间,实现了长度可变的数组
  • 优点:遍历元素和随机访问元素的效率比较高
  • 缺点:添加和删除需大量移动元素效率低,按照内容查询效率低,
LinkedList 线性表中双向链表
  • 采用双向链表存储方式。
  • 缺点:遍历和随机访问元素效率低下
  • 优点:插入、删除元素效率比较高(但是前提也是必须先低效率查询才可。如果插入删除发 生在头尾可以减少查询次数)
List常用方法
  • List相对Collection增加了关于位置操作的方法
  • List的遍历方法
    • for
    • for-each
    • Iterator迭代器
理解面向接口编程
List list = new ArrayList();
ArrayList list = new ArrayList();
  • 集合中内容是否相同
  • 通过equals进行内容比较,而是==引用比较
set

特点:无序 唯一(不重复)

HashSet
  • 采用Hashtable哈希表存储结构(神奇的结构)
  • 优点:添加速度快 查询速度快 删除速度快
  • 缺点:无序
LinkedHashSet
  • 采用哈希表存储结构,同时使用链表维护次序
  • 有序(添加顺序)
TreeSet
  • 采用二叉树(红黑树)的存储结构
  • 优点:有序 查询速度比List快(按照内容查询)
  • 缺点:查询速度没有HashSet快
Set常用方法
  • Set相对Collection没有增加任何方法
  • Set的遍历方法
    • for-each
    • Iterator迭代器
    • 无法使用for进行遍历(因为无序,所以没有get(i))
  • HashSet、HashMap或Hashtable中对象唯一性判断
  • 重写其hashCode()和equals()方法
  • TreeSet中指明排序依据
  • 实现Comparable接口
  • 创建实现Compator接口的类。
哈希表存储原理
  • 神奇的表结构,添加和查询数据速度非常快
Map

特点 key-value映射

HashMap
  • Key无序 唯一 (Set)
  • Value 无序 不唯一 (Collection)
LinkedHashMap
  • 有序的HashMap 速度快
  • TreeMap
  • 有序 速度没有hash快

Set和Map采用了相同的数据结构,只用于map的key存储数据,就是Set

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP-MVC框架类实现

    cwl_java
  • Java工具集-集合(CollectionUtils)

    cwl_java
  • 快速学习-登录页面的开发

    cwl_java
  • c++15.0 RTTI机制, 类型转换操作, 表达式类型推断与获取

    ---- c++的语法,我准备要结束了,c++东西还有很多,比如多线程,c11新特性等,我不是很熟,以后有时间在补充吧。准备写c#了,原本准备开始java语法的...

    东风冷雪
  • javascript跨域

    最近在项目开发的过程中遇到一些Javascript 跨域请求的问题,今天抽空对其进行总结一下,以备后用,也希望同学们在遇到类似问题的时候可以有所帮助。

    张炳
  • django 返回 json 格式数据

    onety码生
  • 类的成员函数(构造、析构、拷贝构造、赋值、运算符重载)的实现

    WindSun
  • 【芯片救德国】博世10亿欧元建世界最先进芯片工厂,2021年正式投产

    新智元
  • 2016倒闭的“互联网+”名单 | 人有多大胆,地有多大产

    而现在的很多创业者又何尝不是如此?大家哪里是在创业,都是玩空手套白狼,都是在讲故事,描述自己的未来,你描述的越好,估值越高。这不是浮夸风是什么?

    华章科技
  • 国外整理的一套渗透测试资源合集

    不知雨

扫码关注云+社区

领取腾讯云代金券