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中的一个核心概念。多线程允许同时执行多个任务,提高程序效率。线程的创建、同步、通信和死锁处理都是多线程编程中必须掌握的知识点。 第九章涉及泛型的概念,它提供了编写类型...
本套“Java课堂笔记”旨在为学习者提供一个从入门到精通的全面学习路径,通过简洁明了的方式,让学习者在短时间内掌握Java的核心概念和技术。 一、Java基础 Java的基础包括语法特性、数据类型、变量、运算符和控制...
Java学习笔记:全面掌握Java编程的核心知识与技能 在当今的软件开发领域,Java作为一种流行的、功能强大的面向对象编程语言,被广泛应用于各种场景,包括Web应用、移动应用、企业级应用等。本篇Java学习笔记旨在为...
### 第十三章至第十五章:Web前端技术 - **HTML**:标记语言,构建网页结构。 - **CSS**:样式表语言,控制页面样式。 - **JavaScript**:脚本语言,实现网页交互。 ### 第十六章:DOM - **文档对象模型**:描述XML...
#### 第十三章:多线程 **一、线程的基本概念** 1. **什么是线程**:线程是操作系统能够进行运算调度的最小单位,是进程的一部分。 2. **线程和进程的区别**:线程是进程中的实体,是调度和分配的基本单位;进程则...
#### 第十三章至第十五章:Web前端技术 - **HTML/CSS/JavaScript基础**:这部分介绍了构建网页所需的基本技术,包括标记语言HTML、样式表语言CSS以及脚本语言JavaScript。 #### 第十六章:DOM - **DOM解析**:DOM...
### Java实战经典学习笔记知识点概览 #### 一、Java概述及开发环境搭建 - **Java概述** - Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年发布。 - Java的设计目标是“一次编写,到处运行”,这...
Java是一种广泛使用的面向对象的...这份"java 学习笔记大全"应该覆盖了以上所有知识点,通过学习和实践,你可以掌握Java编程的核心技能,无论是进行简单的控制台程序开发,还是复杂的分布式系统设计,都将游刃有余。
#### 第十三章:HTML语言 - **HTML基础知识:** HTML(HyperText Markup Language)用于构建网页结构。 - **标签与属性:** HTML标签用于标记文本,属性用于进一步描述标签。 #### 第十四章:CSS语言 - **CSS基础...
本笔记旨在总结Java的基础知识点,包括JDK的安装与使用、开发工具Eclipse的介绍,以及核心的编程要素如数据类型、运算符和流程控制。 一、JDK JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器...
### Java核心知识精讲 #### 一、Java简介 Java是一种广泛使用的高级编程语言...以上就是从“李兴华java笔记”中提取的核心知识点,涵盖了Java的基础语法、面向对象编程的基本概念和技术点。希望对学习Java有所帮助。
Java涵盖了JavaSE(标准版)、JavaEE(企业版)和JavaME(微型版)三个版本,其中JavaSE是学习Java的基础,包括了核心的类库和API,如集合框架、I/O流、网络编程等。JavaEE则主要面向企业级应用开发,包含了Web服务...
【Java SE课程笔记详解】 Java SE(Standard Edition)是Java平台的核心版本,它为开发桌面应用、服务器端应用以及分布式网络应用提供了基础框架。张龙的Java SE课程笔记是针对初学者和进阶者的一份宝贵资料,涵盖...
Java学习笔记是专门为Java初学者设计的一套详尽的学习资源,旨在帮助新手快速掌握这门广泛使用的编程语言。这份笔记涵盖了从基础概念到高级特性的全面内容,是学习和复习Java知识的理想工具。 1. **Java简介** ...
### Java入门学习笔记 #### 一、Java特点与运行原理 **1.1 Java特点** - **简单性:** Java的设计使得它易于学习且避免了许多传统编程语言中存在的复杂性。 - **面向对象:** Java是一种纯面向对象的语言,支持...
在复习Java时,特别需要注意的是第三、五、六、八章的内容,因为它们占考试分数的大约60%。这些章节可能涵盖类和对象、异常处理、输入/输出流以及集合框架等核心概念。其次,第二、四、七章的内容也非常重要,它们...
以上是根据传智播客视频JavaSE学习笔记总结的关键知识点,覆盖了Java基础环境配置、字符串操作、多线程编程、集合框架、输入输出流、网络编程、反射机制、正则表达式等多个方面,希望对Java初学者和进阶者有所帮助。
Java支持二进制、八进制、十进制和十六进制表示数值,可以通过辗转相除法等方法进行不同进制间的转换。 以上只是Java基础知识的一部分,完整的Java学习还包括类、对象、封装、继承、多态、异常处理、IO流、集合框架...