欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第十二章 集合

程序员文章站 2022-07-04 09:06:59
...

1、集合
集合是一个存放任意数量对象的引用的容器(多个对象放在另一个对象中,此对象可称为一个集合对象)
注意:如果集合对象创建时不指定泛型,则在当前集合中可以存放任意类型的对象。
包括:Collection List Set Map

List:接口的实现类有:ArrayList、LinkedList、Vector
	特点:有序、可重复
	ArrayList:数组结构(底层使用数组来实现),以下标形式获取指定位置的元素
		优缺点:查询方便(快速),插入和移除不便,可以重复添加同一个对象。
		场景:一次插入,多次查询。
		注意:ArrayList创建对象时,默认预留10个元素的位置(初始化数组长度为10),每次扩容50%
	LinkedList:链表结构
		优缺点:插入和移除方便(快速),查询不便。
		场景:频繁插入和移除
	方法:
		get(int index)获取指定位置的元素(核心:通过数组下标获取元素)
		add(int index,Object element)在指定位置添加元素
		remove()参数:位置/对象,如果参数为位置,则移除当前位置的元素,并提供当前位置元素为返回值;如果参数为对象,则移除当前集合中第一个匹配的元素。
Set:接口的实现类有:HashSet、TreeSet
	特点:无序、不可重复
	HashSet:使用迭代器或者forEach进行遍历
		原理:根据要存放对象的哈希值来计算出对象的位置
	TreeSet:使用迭代器或者forEach进行遍历
		原理:字符、字符串、数字使用字典顺序存放,自定义类型的存放顺序根据compareTo方法定义的规则排序。
Map:键值对

	特点:通过键获取对应的值。
	注意:存放时,键相同的情况下,后面的值会替换前面的值。
	注意:map的键一般为String类型,值可以为任意类型
	
	方法:map.put(key, value)表示向map对象中存放一个键值对,key为键,value为值	
			返回值:泛型对象,值为当前键所对应的原来的值(被替换的值)

2、集合中的方法:
size()表示获取当前集合中的元素个数
add(Object e)表示想集合中的默认位置添加一个元素,参数为Object类型的子类。

3、泛型:泛指一种类型
是一种约束,在创建对象时指定,则使用时只能使用此种类型或其子类
写法:在类名称后面添加<大写字母>,一般来说,类的泛型默认为T,接口的泛型默认为E.
注意:泛型可以有多个,中间使用逗号(",")间隔