Java知识复习(二)Java集合
创始人
2024-05-26 19:51:36
0

1、List、Set和Map的区别

  1. List:存储的顺序是有序的、可重复的
  2. Set:存储的顺序是无序的、不可重复的
  3. Map:使用键值对存储,Key和Value都是无序的,其中Key不可重复,而Value可重复

2、ArrayList和LinkedList的区别

  1. ArrayList底层使用Object数组实现,可使用随机访问
  2. LinkedList底层使用双向链表实现,不可使用随机访问

3、HashMap和HashSet的区别

  1. HashMap存储键值对,通过put()添加元素,而HashSet仅存储对象,通过add()添加元素
  2. HashMap通过Key计算hashcode值,而HashSet通过成员对象计算hashcode值
  3. HashSet底层就是基于HashMap实现的
  4. HashMap的默认初始长度为16,后续每次扩充都为原来的2倍

4、HashMap和ConcurrentHashMap的区别

  1. HashMap是线程不安全的,当出现多线程操作时,会出现安全隐患;而ConcurrentHashMap是线程安全的。
  2. HashMap不支持并发操作,没有同步方法,ConcurrentHashMap支持并发操作,通进行加锁(分段锁),每次需要加锁的操作锁住的是一个 segment,这样只要保证每个 Segment 是线程安全的,也就实现了全局的线程安全

5、HashSet、LinkedHashSet和TreeSet的区别

  1. HashSet就是正常的无序、不可重复
  2. LinkedHashSet能够按照添加的顺序遍历,使用链表实现
  3. TreeSet能够按照添加元素的顺序进行遍历,并对元素进行排序,自平衡的排序二叉树

PS:还有一种LinkedHashMap和LinkedHashSet类似,可以保持键值对的插入顺序,使用双向链表实现

6、Java集合框架中的继承关系

在这里插入图片描述

7、集合和数组的相互转换

1、数组转集合

list.toArray(new String[0]);
//new String[0]就只是起一个模板作用,用来指定返回的类型

2、集合转数组

List myList = Arrays.asList("Apple","Banana", "Orange");

使用上述方法请注意:

  1. Arrays.asList()是泛型方法,传递的数组必须是对象数组,而不是基本类型。即不能是int,而应该是Integer。
  2. 使用集合的修改方法: add()、remove()、clear()会抛出异常。即不能对转变后的集合进行操作。

可以用另外一种简便的方法:

List list = new ArrayList<>(Arrays.asList("a", "b", "c"));

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...