欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Java基础知识-------集合-中

时间:2023-08-01
第1章数据结构 1.1List集合存储数据的结构


ArrayList 的特点:
1.底层数据结构是数组,自动复制扩容。
1.1ArrayList 扩容时是 10*1.5 =15
1.2StringBuilder 扩容时是 16 *2 +2 =34
1.3.本质都是通过重新创建新的数组,并且将旧的数组元素通过System.arrayCopy()方法复制进去的。
2.查询快,增删慢。
3.不是同步的,线程不安全,运行速度快。
Vector 的特点:
1.List属于集合框架中的接口,开始于JDK1.2版本。Vector开始于JDK1.0版本,从1.2开始改为实现接口list。
2.底层数据结构也是数组,和ArrayList相同。
3.Vector是线程安全的集合,运行速度慢,在开发中被ArrayList取代。

补充知识点,位于运算符。
进制
1.二进制时,3就表示 0000 0011
2.十六进制时,31就表示 0x0000 001f
位移运算符:>> 右移一位 相当于除以2 (相对于商来说)
0000 0100 = 4
>> 1
0000 0010 = 2

0000 0011 = 3
>>1
0000 0001 = 1
位移运算符: << 左移一位 相当于乘以2
0000 0011 = 3
1 <<
0000 0110 = 6

单向链表就像:老鹰抓小鸡中,小鸡都紧紧跟在母鸡后面组成的队形。

双向链表就像:大家手拉着手。

栈结构介绍:

** 队列的介绍:**

1.2linkedList集合

linkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合。实际开发中对一个集合元素的添加与删除经常涉及到首尾操作,而linkedList提供了大量首尾操作的方法。如下图

linkedList是List的子类,List中的方法linkedList都是可以使用,这里就不做详细介绍,我们只需要了解linkedList的特有方法即可。在开发时,linkedList集合也可以作为堆栈,队列的结构使用。
方法演示:

linkedList link = new linkedList();//添加元素link.addFirst("abc1");link.addFirst("abc2");link.addFirst("abc3");//获取元素System.out.println(link.getFirst());System.out.println(link.getLast());//删除元素System.out.println(link.removeFirst());System.out.println(link.removeLast());while(!link.isEmpty()){ //判断集合是否为空System.out.println(link.pop()); //弹出集合中的栈顶元素 }

第2章Set接口

查阅Set集合的API介绍,通过元素的equals方法,来判断是否为重复元素,它是个不包含重复元素的集合。Set集合取出元素的方式可以采用:迭代器、增强for。
Set集合有多个子类,这里我们介绍其中的HashSet、linkedHashSet这两个集合。

2.1HashSet集合介绍

查阅HashSet集合的API介绍:此类实现Set接口,由哈希表支持(实际上是一个 HashMap集合)。HashSet集合不能保证迭代的顺序与元素存储顺序相同。
HashSet集合,采用哈希表结构存储数据,保证元素唯一性的方式依赖于:hashCode()与equals()方法。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。