△列表迭代器也是不支持在迭代的时候添加元素的,只是列表迭代器自己定义了增删的方法而已.迭代器可以看成实在两个元素之间的指针,每当调用next就跳过一个元素并返回刚刚跳过的元素.
△HashTable不允许null作为键和值,而HashMap可以.
△在Java中,所有链表实际上都是双向连接的,即每个节点还存放着指向前驱节点的引用
,add方法将在listiterator迭代器位置前添加一个元素.尽管有Listiterator,但是对列表的并发修改仍然会产生异常,但是这里有个特例,set操作不被视为结构性的修改.
△链表不支持随机访问,调用get方法,依然需要逐个寻找,因此对于列表,非常不建议下列的做法(效率极低,最好用迭代器):
for(int i=0;i<list.size();i++) {
list.get(i);
}
△散列表由链表数组实现.每个列表称为桶.先计算散列码,然后得到桶的索引,最后根据桶内如果有重复元素,在根据equals方法判断是否重复.
△优先级队列:迭代的时候无序,但是remove的时候是有顺序的.
△集合框架中视图的概念:
     通过使用视图,可以获得其他实现了集合接口和映射表接口的对象.例如keyset方法,看似好像创建了一个新集,但是这个类的方法可以对原映射表进行操作.例如:如果在keyset中remove了某个key,对应的映射表会被删除.
△LinkedHashSet和LinkedHashMap,链接散列映射表将用访问顺序而不是插入顺序对于映射条目进行迭代.(ArrayList是插入顺序).每次调用get或put则会更新顺序,将使得元素到了条目的尾部,因此有利于寻找什么元素访问频率较低,在枚举的前几个元素都是访问低的..,要想构造这样的HashMap,在构造函数的时候使用:LinkedHashMap<K,V>(initialCapacity,loadFactor,true).
△RandomAccess接口可以用来检测一个集合是否支持高校的随机访问.(标记性接口),ArrayList和Vector类实现了RandomAccess接口
△Arrays类的静态方法返回了一个包含了普通数组的一个List包装器.例如:
Card[] cardDeck=new Card[2];
List<Card> cardList=Arrays.asList(cardDeck);
  返回的是视图对象带有访问底层数组的get和set方法,改变数组大小的所有方法(add和remove)都会抛出异常.
  collections.nCopies(n,anObject):将返回一个不可修改的实现类List接口的对象,对象中有n个元素,每个元素都是"anObject".
△子范围视图也可以建立.例如对于一个列表可以调用subList获得一个列表的子范围视图.可以将任何操作应用于子范围,并且能够真实反映整个列表的情况.例如,下列操作将删除一个列表的第一个元素到第9个元素(包含头不包含尾):
List group=staff.subList(1,10);
group.clear();

△Collections.unmodifiableList(list):将返回一个不可修改的列表视图,Collections.synchronizedMap(new HashMap<>());将返回一个线程安全的HashMap.

 

JavaSE复习_9 集合框架复习的更多相关文章

  1. JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

    前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...

  2. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  3. java集合框架复习(一)

    数组类Array是java中最基本的一个存储结构,它用于存储 一组连续的对象或一组类型相同的基本类型的数据. Array特点:效率高,但容量固定且无法动态改变, 缺点:无法判断其中存有多少元素,len ...

  4. java集合框架复习

    数组类Array是java中最基本的一个存储结构,它用于存储 一组连续的对象或一组类型相同的基本类型的数据. Array特点:效率高,但容量固定且无法动态改变, 缺点:无法判断其中存有多少元素,len ...

  5. java集合框架复习----(3)Set

    文章目录 四.set集合 1.hashSet[重点] 2.TreeSet 四.set集合 无序.无下标.元素不可重复 1.hashSet[重点] == 数组+链表+红黑树== 基于hashcode计算 ...

  6. java集合框架复习----(1)

    文章目录 1 .集合框架思维导图 一.什么是集合 二.collection接口 1 .集合框架思维导图 一.什么是集合 存放在java.util.*.是一个存放对象的容器. 存放的是对象的引用,不是对 ...

  7. java集合框架复习----(4)Map、List、set

    文章目录 五.Map集合[重要] 1.hashMap 六.Collections工具类 总结 集合的概念 List集合 set集合: Map集合 Collection 五.Map集合[重要] 特点: ...

  8. java集合框架复习----(2)List

    文章目录 三.List集合 listIterator:迭代器 List实现类 1.泛型类 2.泛型接口 三.List集合 特点 有序,打印输出的顺序和添加时的顺序一致(不会帮你自动排序) 有下标,可以 ...

  9. Java复习:集合框架(一张图)

    最后一个看不见了补充一下: ConcurrentHashMap:是线程安全的(基于lock实现的,同步的时候锁住的不是整个对象,而加了synchronized的是锁住了整个的对象),实现了Map接口, ...

随机推荐

  1. windows7 安装 memcached

    下载 memcached 的 windows 稳定 memcached.exe 版本,然后解压到某个目录下面,这里放到了 D:\ApacheServer\memcached 找到 C:\Windows ...

  2. android基础小结

    (注:此小结文档在全屏模式下观看效果最佳) 2016年3月1日,正式开始了我的android学习之路. 最最开始的,当然是学习怎样搭载环境了,然而苦逼的我在win10各种坑爹的指引下还是安装了一个星期 ...

  3. 杭电1097-A hard puzzle

    Problem Description lcy gives a hard puzzle to feng5166,lwg,JGShining and Ignatius: gave a and b,how ...

  4. js实现图片的瀑布流

    先看效果: 初始状态:

  5. 华东交通大学2016年ACM“双基”程序设计竞赛 1004

    Problem Description LB是个十分喜欢钻研的人,对什么事都要搞明白.有一天他看到一个公式,((a-b)*c+d*e)/f=k.他想如果给定K的值,一共有多少种不同整数的组合(a,b, ...

  6. Redis基础

    Redis是开源的,支持网络.可基于内存也可持久化的key-value数据库,支持主从复制,读写分离,支持5种基本数据类型,高并发性能 安装redis数据库 下载:http://redis.io/do ...

  7. Python3基础 多分支结构 if-elif-else

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  8. C#变量与数据类型

    数据类型: 整型:int short long byte 小数:double float decimal 布尔:bool 字符:char 定义变量: 数据类型 变量名 [= 值]; 变量名的命名规则: ...

  9. iOS深入学习(UITableView:系列1-最基本的东西)

    这是UITableView博客系列的第一篇,使用xib和arc编码,主要讲解一些UITableView使用过程中简单的.但是又容易被忽略的东西,而且我会告诉读者,怎样在使用了之后就再也不会忘记. 操作 ...

  10. CodeForces 219C Color Stripe

    Color Stripe Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submi ...