当前位置:   article > 正文

Java中的集合:List、Set、Map集合详解_java maplist集合

java maplist集合

一、关于集合的背景概况

1、为什么会产生集合?
集合可以类比到数组,都是储存多个数据的容器。
数组:长度不可变,在定义时就已经指定其长度(巴士)
集合:长度可变(火车,可以加车厢)
所以,在使用层面上来说,使用集合会比使用数组更加便利。
2、集合类概述
在这里插入图片描述
说明:
Collection是List和Set的父接口
List和Set同样也是接口
List常用的实现类:ArrayList和LinkedList
Set常用的实现类:HashSet和TreeSet

Map常用的实现类:HashMap和TreeMap

小知识:
Collection(集合名称) Collections(操作集合的工具类)
Array(数组名称) Arrays(操作数组的工具类)

说明:
首先,我们必须明确一点,以下所谈有序和无序不是指集合中的排序,而是指是否按照元素添加的顺序来存储对象。

二、List集合

List集合的特点:有序,可以有重复的元素。
常用实现类:ArrayList和LinkedList

1、ArrayList和LinkedList对比

(1)ArrayList集合
具有数组结构的list集合,有下标,可以通过下标查找、删除、修改、添加集合中的元素,下标和数组一样从0开始。
与数组对比: ArrayList集合的长度是可以改变的,添加元素和删除元素是不需要手动扩容和缩容的。

(2)LinkedList集合
双向链表结构,没有下标。
在这里插入图片描述
说明: 对于LinkedList集合中的一个元素,除了存放data信息,还存放着上一个元素以及下一个元素的地址信息。

(3)从查询角度看
在这里插入图片描述
(4)从修改角度看
在这里插入图片描述
(5) ArrayList必须是连续的内存空间,LinkedList不需要连续的内存空间。

综上所述:
查询方面:
ArrayList有下标,可以根据下标直接获取元素。
LinkedList没有下标,获取元素需要前后遍历

修改方面:
ArrayList删除和添加元素的机制类似于数组,效率慢。
LinkedList删除和添加元素,只需要断开指定的连接,在断开的地方添加或者修改元素、修改地址信息即可,相对ArrayList要快。

2、List集合常用方法

1、添加元素
集合名.add(o);

2、获取集合长度
集合名.size();

3、获取元素(通过下标)
集合名.get(index);

4、删除元素
集合名.remove(index);
remove的重载方法:
在这里插入图片描述
5、修改元素
集合名.set(index, o);

6、添加元素
例如:在下标为1的位置上插入
集合名.add(index,o);

以上,不管是ArrayList还是LinkedList集合都适合用,
后面会列举一些LinkedList集合特有的方法。

3、ArrayList集合遍历

for以及foreach的遍历方式省略不写。
(1)迭代器遍历
原理:
当获取到对应集合的迭代器时,光标指在集合最开始的那个元素,借助迭代器名.hasNext() 来判断是否有下一个元素,如果有则会返回true,没有则会返回false,即已经取到迭代器的末尾了。同时通过迭代器名.next() 来获取元素。

public class Test {
   
	public static void main(String[] args) {
   
		List<String> list = new ArrayList<String>();
		list.add("123");
		list.add("abc");
		list.add("456");
		//1、根据集合获取对应的迭代器
		Iterator<String> it = list.iterator();
		//2、判断后面还有无元素,如果有则输出,无则跳出循环
		while(it.hasNext()) {
   
			System.out.println(it.next());
		}
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

(2)lambda表达式
JDK1.8之后的新特性。
演变过程复杂,所以展示其应用即可。

public class Test {
   
	public static void main(String[] args) {
   
		List<String> list = new ArrayList<String>();
		list.add("123");
		list.add
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/800428
推荐阅读
相关标签
  

闽ICP备14008679号