Java集合
2022-02-27 12:49:13 25 举报
AI智能生成
登录查看完整内容
Java集合知识点
作者其他创作
大纲/内容
Unicode
其他
int(4字节)
short(2字节)
long(8字节)
byte(1字节)
float(4字节)
double(8字节)
char(2字节)
boolean
8大基本类型
在java中这两种的基本类型的精度存在问题。如果需要涉及到精确的计算(如:金融类)。请使用BigDeimal类
不建议在程序中使用char类型,除非确实需要对UTF-16代码单元进行操作
String是final的,不可变的,如果是一个可变的字符串,请尝试使用Stringbuilder
String
速度快线程不安全
StringBuilder
需要可变字符串,单线程下使用
线程安全速度慢
StringBuffer
可变字符串,多线程下使用
字符串类型
Intrger
Double
Float
Long
Boolean
Character
Short
包装类型
1. 底层原理:内部维护了一个Object[] element;
2. 扩容机制:初始化如果不指定大小,则数组的大小为0当大小为0时,第一次添加,则大小扩容至10后续,再次扩容,则增加1.5倍的方式增加
3.线程不安全
ArrayList
1. 底层原理:内部也是维护了一个Object[] element;
3. 线程安全
1.底层原理:同Vector
2. pop方法会移除最后一个元素
Stack
Vector
1.底层原理:双向链表
2.扩容机制:由于是双向链表,所以不存在容量问题,不需要扩容
LinkedList
List
1.底层实现:HashMap,key为set元素,value为空的Object对象。
2.可以存放一个null值,但是只能有一个
1.底层实现:LinkedHashMap
2.线程不安全
3.保证插入读出顺序一致
LinkedHashSet
HashSet
底层实现:treeMap
TreeSet
Set
Collection
1.有序集合2.有索引3.元素可以重复
1.底层实现:数组+双向链表双向链表,可以维护元素的次序
LinkedHashMap
有序,但不可重复,线程不安全
jdk1.7:数组+链表
当hash表的一条链表长度 > 8 && 数组(hash表)的长度 >= 64链表会转化为红黑树(树化)
若hash表的一条链表长度 > 8 && 数组(hash表)长度 > 64数组(hash表)将扩容值原来的两倍
若当一个红黑树中的节点 <= 6 时 会转回链表。(剪枝)
jdk1.8:数组+链表+红黑树
底层实现
第一次加载hash表初始化为16负载因子默认为 0.75
后续扩容当增加的节点数 >= 当前的hash表长 * 0.75(该节点不一定是添加在数组上,也可以是链表上)就扩容值原来的两倍
扩容机制
通过遍历keySet获取key的集合,从而获取对应的vlues值
通过迭代器去遍历keySet
通过遍历entrySet获取key或value
通过迭代器去遍历entrySet
通过遍历Values获得所有value的集合
通过迭代器去遍历Vaules
遍历方式
HashMap
数组+链表
底层结构
通过synchronized实现
线程安全
初始化容量为11
后续扩容为2n+1
hashTable的子类,线程安全
经常读取配置文件等
注意点:key和value 都不能为空
Properties
HashTable
有序集合,通过红黑树实现
key必须实现comparable接口,否则会抛出异常
根据传入的comparable函数式接口,来控制排序的方式。
TreeMap
Map
1.判重机制:先对key的HashCode进行比较,如果不同再去比较地址 或 调用equal()方法比较。如果key相同,key不会替换,value将会被替换2.线程不安全
继承关系图
集合类型
例如: int a; System.out.println(a);
申明变量后,需要对变量进行一个显示的初始化,才可以使用。
面试,易错点
Math:运行效率高StrictMath:可以保障在不同的平台上运行都得到相同的结果(一个完全可预测的结果)
建议
存储
1.字符串的比较,需要使用equals()方法,比较时建议将稳定的对象放在前面,能够有效的比较空指针。例如:"a".equals(str)2.如果比较忽略大小写,可以使用equalsIgnoreCase()
它们都是不可变对象
linkedHashMap&Entry
hashMap&Node
Map&Entry
Vaules存放着Map所又value的指向
keySet存放着Map中的所有key的指向
set
Map附加知识点
entrySet
Java
0 条评论
回复 删除
下一页