Java之集合与数组

一、集合Set与数组LIst

1、集合与数组的异同:

1)相同:集合和数组存储的内容都为Object对象

2)不同:数组长度固定,而集合长度可变,且容量每次以2倍扩充;

set中不能包含重复元素,list是一个有序集合,可包含重复元素。

2、集合的层次关系:

1、集合接口——Java.util.Collection

Collection接口为集合类中的根接口,该接口被继承后可产生两个接口,分别为Set和List

2、包装类——Java.util.Collections

二、set

1、“Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。”

2、分为:AbstractSet、HashSet、TreeSet

3、Set中有许多函数可供调用。

4、HashSet和TreeSet

1)不同:

TreeSet会将集合内的元素进行默认的排序。

HashSet可将equals()方法与hashCode配合使用来实现条件更完整的筛选.

三、list

1、“List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。”

2、AbstractList、HashList、TreeList

3、提供的输出方式:

1)for循环输出

for(int i=0;i<arr.size();i++){...}

2)for reach输出

for(int i:arr){...}

3)Iterator(迭代器)

Iterator it = arr.iterator();
while(it.hasNext()){ object o =it.next(); ...}

4、ArrayList与LinkedList

1)用法上相同

2)“LinkedList中插入元素很快,而ArrayList中插入元素很慢
LinkedList中顺序访问很慢,而ArrayList中顺序访问很快”

四、map

1、“Map集合中存储的是键值(类似数组下标)对(不可一对多,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。”


猜你喜欢

转载自blog.csdn.net/qq_41187714/article/details/80218046