![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
南望96X
积累知识,积攒经验
展开
-
ArrayList(int initialCapacity) 初始化容量问题
今天看了ArrayList源码,发现了一个不大不小的问题:public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[initialCapacity]; } else if (initialCapacity == 0) { this.elementData = EMPTY_ELEMENTD原创 2020-06-03 19:15:56 · 3094 阅读 · 0 评论 -
Java集合类学习笔记5------------HashSet的原理
Hashset集合的底层数据结构使用了哈希表结构,有数组和链表或者是数组和红黑树组成。HashSet的原理对于HashSet中的每个元素,都会通过类的hashCode方法生成哈希值,将每个元素按照哈希值分配到数组中,每个hash值对应数组中的一个元素。如果两个元素的hash值相同了,这就是出现了哈希冲突,这时会调用类的equals方法,判断在和已经存在的元素是否相等,如果相等,这个元素将不会被添加到集合中,如果不相等,它会以链表的形式挂在已经存在的元素之下。HashSet查询快的原因就是综合了数组原创 2020-06-01 20:58:25 · 137 阅读 · 0 评论 -
Java集合类学习笔记4-------List接口下的集合
List接口下比较常用的实现类有3个,ArrayList,LinkedList,Vector。ArrayList集合ArrayList集合基本就是带索引的Collection方法,因此在这里不再赘述。它的底层实现是数组,我们查看源码发现,ArrayList用来改变数组的大小和其中元素的方法是在长度需要扩增或缩减(可能有太多的未使用空间浪费)时以及数组中的元素发生改变时,将原数组复制到另一个数组上,然后通过垃圾回收清除原数组。这种实现虽然满足了基本需求,但速度也很慢。ArrayList集合的优势在于原创 2020-05-28 09:29:06 · 113 阅读 · 0 评论 -
Java集合类学习笔记3------------迭代器
在笔记1中提到,Collection和Set类没有通过索引来获取元素中的方法,无法进行遍历和迭代的相关操作,因此Java引入了迭代器。Iterator接口介绍Iterator接口的主要作用就是对元素实现迭代操作,其中有3个方法:boolean hasNext();E next();void remove();主要使用的都是前两个方法,第三个方法使用较少,自己实现时也是可选实现。hasNext方法用来判断是否存在下一个元素,如果存在下一个元素,返回true,否则返回falsenext方法用原创 2020-05-26 12:39:45 · 134 阅读 · 0 评论 -
Java集合类学习笔记1-------集合类概述
之前是通过通读Java核心技术卷1来学习Java基础,集合类这部分学的不是很清楚,因此看视频再学习一遍,顺便做些笔记。Collection接口Collection接口定义了所有单列集合中的共性的方法所有集合都可以使用这些方法这些方法因为是给所有集合使用的,所以都不带索引List接口List接口继承自Collection接口,它具有以下特点实现List接口的集合都是有序的集合这些集合中的元素可以重复可以使用带索引的方法获取和修改元素可以使用普通的for循环进行遍历实现了List接原创 2020-05-26 09:38:48 · 153 阅读 · 0 评论 -
Java集合类学习笔记2----------Collection集合常用方法
Collection集合中的方法可以适用于各种集合,一般我们要实现自己的要使用的数据结构也会重写这些方法Collection有以下这些方法public boolean add(E e);public boolean remove(E e);public boolean contains(E e);public boolean isEmpty();public void clear();public int size();public Object[] toArray();定义Coll原创 2020-05-26 10:33:53 · 186 阅读 · 0 评论