集合,学习

集合的概念

集合用于存储对象,分为list和set两种。

1,其中list元素是有序的,并且可以重复,之所以可以重复是因为list是有索引的。

2,但是set元素是无序的,并且不可以重复。

3,list有特有的迭代器:listIterator,listIterator是Iterator的子接口。

4,在使用迭代器的方法操作元素时,不能再用集合对象的方法操作元素,因为这样会抛出异常,所以操作是只可以使用一种方法。

5,迭代器Iterator操作元素时,只能对元素做判断·取出·删除这三种操作,这三种方法满足不了现实的需要,所以可以调用listIterator这个Iterator的子接口,这样就能对对象作出更多的操作。

6,arrayList是底层的数据结构,使用数组结构,特点是查询速度快,但是增删稍慢,线程不同步,ArrayList实现了可变大小的数组。

7,linkedList底层使用的是链表数据结构,特点是增删速度快,但是查询速度稍慢,和arrayList一样,他也是线程不同步的。

8,vector,以前的高层数组数据结构,线程同步。但是现在已经基本被arraylist取代了。

9,堆栈:先进后出。队列,先进先出。

10,hashSet是如何保证元素唯一性的

(1)通过hashCode和equals这两种方法

(2)如果元素的hashCode相同,再去判断元素的equals是否也是true

(3)如果元素的hashCode不同,则不去调用equals方法。

11,treeSet可以对集合中的元素进行排序,底层数据结构是二叉树。保证数据元素的唯一性是通过compareTo方法。

12,treeSet排序的第一种方式:让元素自身具备比较性,元素需要实现comparable接口,覆盖compareTo方法。这种方式也称为元素的自然排序,或者默认排序。

13,treeSet的第二种排序方式:当元素自身不具备比较性或者具备的比较性不是所需的,这时需要让容器自身具备比较性,定义比较器,将比较器对象作为参数传递给treeSet集合的构造函数。当两种排序都存在时,以比较性为主。

14,定义一个类,实现comparator接口,覆盖compare方法。

15,泛型:静态方法不可以访问类上定义的泛型,如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。

16,泛型可以定义在类上,方法上,接口上。

MAP:

hashTable:底层是哈希表数据结构,不可以存入null键和null值,该集合是线程同步的。

hashMap:底层是哈希表数据结构,允许使用null键和null值,该集合是线程不同步的

TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序。

1,HashMap:添加元素,如果出现相同的值时,那么后添加 的元素的值会覆盖原有键对应值,并且会返回被覆盖的值。

2,Map集合的两种取出方式,

 (1):通过keySet,将Map中的所有的键都存入到set集合。因为set集合具备迭代器,可以通过迭代方式取出所有的键,在根据get方法,获取到每一个键所对应的值。

  (2):EntrySet,set<Map.Entry<k,v>>,将Map集合中的映射关系存入到set集合中。

3,Map.Entry其实entry 是一个接口,它是Map集合中的一个内部接口。

4,comparaTo方法的实现必须满足一下几个限制条件,自反性,对称性,传递性,非空性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值