
JAVA集合
JAVA集合
杭州小哥哥
记录学习笔记
展开
-
键值的 key 和 value 允许为null吗
maP原创 2020-03-22 10:15:54 · 1372 阅读 · 0 评论 -
HashMap和ArrayList初始大小和扩容后的大小
创建HashMap对象默认情况下,数组大小为16。开始扩容的大小=原来的数组大小*loadFactor。扩容后大小是原来的2倍,其中加载因子loadFactor的默认值为0.75,这个参数可以再创建对象时在构造方法中指定。例如:16*0.75=12,默认创建一个map对象数组大小是16,当map添加12个元素到的时候就发生扩容,创建新的数组的大小2*16=32,然后重新计算每个元素...原创 2020-03-22 09:49:08 · 746 阅读 · 1 评论 -
HashMap默认大小和扩容后的大小
put添加的元素Entry就是数组中的元素,每个Map.Entry其实就是一个key-value对,它持有一个指向下一个元素的引用,这就构成了链表。创建HashMap对象默认情况下,数组大小为16。开始扩容的大小=原来的数组大小*loadFactor。扩容后大小是原来的2倍,其中加载因子loadFactor的默认值为0.75,这个参数可以再创建对象时在构造方法中指定。例如:16...原创 2020-03-22 09:08:54 · 4680 阅读 · 0 评论 -
集合和数组的区别
集合和数组的区别数组是固定长度的;集合可变长度的。数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。...原创 2020-03-21 21:51:54 · 349 阅读 · 0 评论 -
如何实现数组和 List 之间的转换?
数组转 List:使用 Arrays. asList() 进行转换。List 转数组:使用 List 自带的 toArray() 方法原创 2020-03-21 21:32:14 · 1122 阅读 · 0 评论 -
Java中三种Set的实现类的用法和区别
Java为开发者提供了大量的工具类,这给开发人员带来了很大方便,但是选择多了也有困扰,究竟用哪个类;我想选择什么,一是看自己具体需求,二是类本身的性能和用法;Java中提供了HashSet、TreeSet、LinkedHashSet三种常用的Set实现,以下具体分析它们的用法和性能。我们使用Set的原因是Set集合不包含重复元素,HashSet、TreeSet和LinkedHashSet三种类...原创 2020-03-19 23:56:45 · 2382 阅读 · 0 评论 -
怎么确保一个集合不能被修改?
我们很容易想到用final关键字进行修饰,我们都知道final关键字可以修饰类,方法,成员变量,final修饰的类不能被继承,final修饰的方法不能被重写,final修饰的成员变量必须初始化值,如果这个成员变量是基本数据类型,表示这个变量的值是不可改变的,如果说这个成员变量是引用类型,则表示这个引用的地址值是不能改变的,但是这个引用所指向的对象里面的内容还是可以改变的。那么,我们怎么确保一个...原创 2020-03-19 22:59:40 · 3707 阅读 · 0 评论 -
迭代器(Iterator)遍历的两种方法(for和while)
一般遍历list的时候,我们习惯下面的写法,但这种写法有缺陷,不能及时释放iterator的内存while循环遍历@Testpublic void testIteratorWhile(){ ArrayList<String> lists = new ArrayList<>(); lists.add("A"); lists.add("B"...原创 2020-03-19 17:26:49 · 2252 阅读 · 0 评论 -
循环的时候去删除集合中的元素 java.util.ConcurrentModificationException
使用for循环,删除集合中的元素,会报错 java.util.ConcurrentModificationException只能通过迭代器iterator删除1:在while循环中使用iterator迭代器删除集合中元素2:在for循环中使用iterator迭代器删除集合中元素3:使用for循环集合中元素的时候,可以使用Copy...原创 2020-03-19 17:12:35 · 332 阅读 · 0 评论