13.1 集合接口
1. 使用迭代器Iterator进行访问时,元素被访问的顺序取决于集合类型。如果对ArrayList进行迭代,会从索引0开始,每迭代一次,索引值加1;如果是HashSet,那每个元素将会按照某种随机的次序出现。 (P558)
13.2 具体的接口
1.在Java程序设计语言中,所有链表实际上都是双向链接的(doubly linked)---即每个结点还存放着指向前驱节点的引用。 (P562)
2. 为避免集合发生并发修改的异常,请遵循下述简单规则:可以根据需要给容器附加许多的迭代器,但是这些迭代顺只能读取列表。另外,再单独附加一个既能读又能写的迭代器。----即读写分离。(P566)
3. Map中键可以为null,但是值不能为null。 (P584)
4.IdentityHashMap(标识散列映射表)
在对两个对象进行比较时,IdentityHashMap类使用==,而不是使用equals。也就是说,不同的键对象,即使内容相同,也被视为不同对象。在实现对象遍历算法(如对象序列化)时,这个类非常有用,可以用来跟踪每个对象有遍历情况。 (P588)
13.3 集合框架
1.视图与包装器
keySet方法返回一个实现Set接口的类对象,这个类的方法对原映射表进行操作,这种集合称为视图.(P592)
(1). 轻量级集包装器
Arrays.asList方法,将数组返回为一个可修改但不可更改大小的List
(2) 不可修改视图
Collections的unmodifiable系统方法,返回不可修改、且不可更改大小的集合接口
(3) 子范围(subList)、同步视图(synchronized)、被检验视图(checkedList)等等
(4)通常,视图具有一些局限性,即可能只可以读、无法改变大小、只支持删除而不支持插入等。如果进行不恰当的操作,受限制的视图就会抛出一个UnspportedOperationException。
2.集合与数组的互换
(1)、数组到集合
String[] values = ...;
HashSet(String) staff = new HashSet<String>(Arrays.asList(values));
(2)、集合到数组
staff.toArray(new String[staff.size()]);
在这种情况下,没有创建任何数组;也避免了直接使用toArray方法返回Object的现象。
13.4 算法
1. 如果想按照降序对列表进行排序,可以使用一种非常方便的静态方法Collections.reverseOrder()。 (P601)
e.g:Collections.sort(staff,Collections, reverseOrder())
2、一些常用的简单算法
shuffle(List):随机打乱集合的顺序;
copy(List):将一个列表中的元素复制到另一个列表中;
fill(List<T>, T):用一个常量值填充容器;
reverse(List):逆置列表中的元素。
disjoint(Collection, Collection):判断两个集合有没有共同的元素。
相关推荐
java核心技术 corejava 笔记
面向对象技术总结 corejava高级特性总结 接口学习总结 异常和内部类 集合框架学习总结....
《Java核心技术卷Ⅰ》笔记,精心整理,绝对非盗版
JAVA框架核心技术笔记,JAVA框架核心技术笔记,JAVA框架核心技术笔记,JAVA框架核心技术笔记,JAVA框架核心技术笔记,JAVA框架核心技术笔记,JAVA框架核心技术笔记,JAVA框架核心技术笔记,JAVA框架核心技术笔记,JAVA框架...
java框架核心技术笔记,java框架核心技术笔记,java框架核心技术笔记
java核心,第一卷的读书笔记
很好的整理过的核心笔记 容易看懂 不要错过 机会难得
java 集合部分笔记 1 集合的概述 2 Collection接口和Iterator接口(迭代器) 3 List接口 4 Set接口 5 Map接口
java笔记,第一章Java技术简介-笔记
java基础核心学习笔记
《Java2核心技术》笔记 希望对大家考试有帮助
Java基础笔记, 第一章:编程基础 第二章:数组 第三章:面向对象程序开发 第四章:异常机制 第五章:多线程技术 第六章:常用类API 第七章:集合框架(容器)+其他类对象使用 第八章:IO流 第九章:GUI编程 第十章...
List set ArraryList Map java集合框架笔记 基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用
集合框架学习笔记 https://mp.csdn.net/mdeditor/88970781#
学习Java集合框架的讲义、笔记,希望大家多提意见。时间关系没有Collections,Arrays的内容,以后补上!
java笔记java笔记java笔记java笔记java笔记java笔记java笔记
java 核心技术教程笔记... 不容错过!
java集合类学习笔记.doc 学习java集合时留下的宝贵知识