java基础视频需要记忆的部分备忘 - 集合部分1

集合中元素的遍历方式:
Interator it = al.iterator();
while(it.hasNext()){
 sop(it.next());
}
List:元素是有序的(存入和取出的顺序一致。),元素可以重复。因为该集合体系有索引。
 List集合特有的迭代器。ListIterator时Iterator的子接口。
 在迭代时,不可以通过集合对象的方法操作集合中的元素。因为会发生ConcurrentModificationException异常。所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作。如果想要其他的操作如添加,修改等,就需要使用其子接口ListIterator。该接口只能通过List集合的listIterator方法获取。
ListIterator li = al.listIterator()
while(li.hasNext()){
 li.next();
}
List - ArrayList:底层的数据结构使用的是数组结构。线程不同步。
  默认长度是10,当超过后按照重新创建长度增加50%的数组,并复制原数据和新数据。
     - LinkedList:底层使用的链表数据结构。
     - Vector:底层是数组数据结构。线程同步。(被ArrayList替代,速度慢)
  默认长度是10,当超过后按照100%的方式创建,并复制。
  枚举是Vector特有的取出方式。
List集合判断元素是否相同,依据的是元素的equals方法。



Set:元素是无序的(存入和取出的顺序不一定一致。),元素不可以重复。

Set - HashSet:底层数据结构是哈希表。
 每次添加新元素时,要比较哈希表里的哈希值是否有相同(也就是调用hashCode()方法),在哈希表中值重复的时候,判断元素对象是否相同(也就是调用equals()方法),如果不相同,那么在同一个地址上顺延,标示为两个不同的对象。
Set - TreeSet:底层数据结构是二叉树。可以Set集合中的元素进行排序。
 保证元素唯一性的依据就是comparaTo方法的return 0;
 TreeSet排序方式一:让元素具备比较性需要实现Comparable接口,覆盖public int comparaTo(Object obj)方法。
 TreeSet排序方式二:当元素自身不具备比较性时,或者具备的比较性不是所需要的,这是需要让集合自身具备比较性。定义了比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。定义比较器,实现Comparator接口,覆盖public int compara(Object o1,Object o2)方法。
 当两种排序都存在时,以比较器为主。
排序时,当主要条件相同时,一定要判读一下次要条件。否则会导致添加不相同元素失败。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值