最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

Java 集合框架体系简介

来源:博客园


(资料图)

为什么要使用集合

存储多个数据可以使用数组,但由于数组在内存中是连续存储的,所以会有一些限制。比如数组在创建时就要指定长度,即可以容纳的元素个数,且指定后无法更改;数组在创建时需要指定元素的类型,并且所有元素都必须是该类型或其子类;添加或删除数组中的元素需要创建一个新数组再进行元素复制,比较麻烦。下面是 Person 数组扩容的示意代码。

// 给 people1 数组末尾添加一个元素public class PersonArray {    public static void main(String[] args) {        Person[] people1 = new Person[1];        people1[0] = new Person();        // 创建新数组        Person[] people2 = new Person[people1.length + 1];        // 复制 people1 数组的元素到 people2        for (int i = 0; i < people1.length; i++) {            people2[i] = people1[i];        }        // 添加新元素        people2[people2.length - 1] = new Person();    }}

数组可以通过索引快速访问和操作元素,在许多场景下仍然是非常有用的,但如果需要动态调整大小或保存不同类型的元素,则可以考虑使用集合类来代替数组。集合类还提供了一系列增加、删除、修改和查找元素的方法。集合框架中还提供了多种优化和封装好的实现类,通过使用合适的集合类可以更高效地组织和操作数据。

集合框架体系

Java 的集合类很多,主要有CollectionMap两个接口,层次关系如下图。

Collection接口有ListSet这两个重要的子接口,它们的实现子类都是单列集合。其中List接口表示有序的、可以包含重复元素的集合,常见的实现类有ArrayListLinkedListVectorSet接口表示无序的且不包含重复元素的集合,常见的实现类有HashSetTreeSetLinkedHashSet

Map接口实现子类是双列集合,表示一组键值对的映射,其中每个键都是唯一的。常见的实现类有HashMapHashtableProperties

public class AddElements() {  public static void main(String[] args) {    ArrayList list = new ArrayList<>();    list.add("黄蓉");    list.add("郭靖");    HashMap hashMap = new HashMap();    hashMap.put("001", "黄蓉");    hashMap.put("002", "郭靖");  }}

关键词: