栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础知识-------集合(8)-中

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础知识-------集合(8)-中

第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()方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/727600.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号