集合框架
(1)集合框架实际上就是一个动态数组,与一般的对象数组不同,集合对象的内容可以任意扩充。
B.框架必需允许不同的类型的类集以相同的方式和高度互操作方式工作
1.集合框架的概念
(1)集合框架实际上就是一个动态数组,与一般的对象数组不同,集合对象的内容可以任意扩充。
Java集合框架是Java核心库中的一个重要部分,它为开发人员提供了一种快捷、高效、灵活的方式来处理和操作集合对象。
(2)集合框架中的特征
A.这种框架是高性能的
B.框架必需允许不同的类型的类集以相同的方式和高度互操作方式工作
C.类集必须是任意扩展和修改的
接口 | 描述 |
Collection | 是存放一组单值的最大接口。单值是指集合中的每一个元素都是一个对象,一般 很少会直接使用此接口直接操作。 |
List | List是Collection 接口的子接口,也是最常用的接口,此接口对Collection接口进行了大量的扩充,里面的内容是允许重复的。 |
Set | Set 是Collection 接口的子接口,此接口没有对Collection接口进行扩充,里面的内容不允许重复 |
Map | Map 是存放一对值的最大接口。即:接口中的每个元素都是一对,以Key?value的形式保存 |
lterator | Iterator : 集合的输出接口,用于输出集合中的内容,只能进行从前到后的单向输出 90 |
(3)集合框架常用的接口概述:
1.Collection接口存储一组不唯一,无序的对象。
2.List 接口存储一组不唯一,有序(插入无序)的对象
3.Set 接口存储一组唯一,无序的对象
java集合框架的好处:
- 提供了丰富的数据结构,适用于不同的场景和需求。
- 提供了一致的接口和操作方式,简化了开发和维护的工作。
- 提供了高效的算法和数据结构实现,可以提升程序的性能。
- 可扩展性强,可以根据需要自定义集合类和接口。
1.接口
一、List接口
定义与特点
List是Java集合框架中的接口,它表示一个有序的集合。在List中,元素可以重复,并且每个元素都有一个对应的索引。
ArrayList
基于数组实现的动态数组。当创建ArrayList时,实际上是创建了一个初始容量的数组(默认初始容量为10)。
它的优点是随机访问速度快,因为它可以直接通过索引访问元素,但是,当向其中插入或删除元素时(特别是在数组中间操作时),可能需要移动大量元素,插入和删除操作的时间复杂
LinkedList
基于链表实现。每个节点包含一个数据元素和指向下一个节点(以及在双向链表中,指向前一个节点)的引用。
它的优点是插入和删除操作比较高效,特别是在链表的开头或结尾进行操作时,随机访问速度慢,因为需要从链表头开始遍历
二、Set接口
定义与特点
Set是一个不包含重复元素的集合。它基于对象的equals()方法来判断元素是否重复。
常用实现类
HashSet
基于哈希表实现。它通过计算元素的哈希码来确定元素在集合中的存储位置。
TreeSet
基于红黑树实现的有序Set。它会根据元素的自然顺序(如果元素实现了Comparable接口)或者根据提供的比较器(Comparator)来对元素进行排序。
三、Iterator接口
定义与作用
Iterator是一个迭代器接口,用于遍历集合中的元素。它提供了一种统一的方式来访问集合中的元素,而不需要了解集合的内部结构。
比如说,无论是List、Set还是其他实现了Iterable接口(可以获取Iterator的接口)的集合,都可以使用Iterator来遍历元素。
主要方法
hasNext()
这个方法用于判断集合中是否还有下一个元素。如果有,则返回true;如果已经遍历到集合的末尾,则返回false。
next()
用于返回集合中的下一个元素。在调用next()方法之前,应该先调用hasNext()方法来确保还有下一个元素,否则可能会抛出NoSuchElementException异常。
remove()
这个方法用于从集合中移除由next()方法返回的最后一个元素。注意,不是所有的集合都支持在迭代过程中删除元素,在不支持的情况下调用这个方法会抛出UnsupportedOperationException异常。