Java 集合框架体系简介
为什么要使用集合存储多个数据可以使用数组,但由于数组在内存中是连续存储的,所以会有一些限制。比如数组在创建时就要指定长度,即可以容纳的元素个数,且指定后无法更改;数组在创建时需要指定元素的类型,并且所有元素都必须是该类型或其子类;添加或删除数组中的元素需要创建一个新数组再进行元素复制,比较麻烦。下面是 Person 数组扩容的示意代码。
// 给 people1 数组末尾添加一个元素
public class PersonArray {
public static void main(String[] args) {
Person[] people1 = new Person;
people1 = new Person();
// 创建新数组
Person[] people2 = new Person;
// 复制 people1 数组的元素到 people2
for (int i = 0; i < people1.length; i++) {
people2 = people1;
}
// 添加新元素
people2 = new Person();
}
}数组可以通过索引快速访问和操作元素,在许多场景下仍然是非常有用的,但如果需要动态调整大小或保存不同类型的元素,则可以考虑使用集合类来代替数组。集合类还提供了一系列增加、删除、修改和查找元素的方法。集合框架中还提供了多种优化和封装好的实现类,通过使用合适的集合类可以更高效地组织和操作数据。
集合框架体系
Java 的集合类很多,主要有Collection和Map两个接口,层次关系如下图。
https://img2023.cnblogs.com/blog/3075875/202306/3075875-20230609165325037-2095191914.png
https://img2023.cnblogs.com/blog/3075875/202306/3075875-20230609165339564-439933544.png
Collection接口有List和Set这两个重要的子接口,它们的实现子类都是单列集合。其中List接口表示有序的、可以包含重复元素的集合,常见的实现类有ArrayList、LinkedList和Vector。Set接口表示无序的且不包含重复元素的集合,常见的实现类有HashSet、TreeSet和LinkedHashSet。
Map接口实现子类是双列集合,表示一组键值对的映射,其中每个键都是唯一的。常见的实现类有HashMap、Hashtable和Properties。
public class AddElements() {
public static void main(String[] args) {
ArrayList<Object> list = new ArrayList<>();
list.add("黄蓉");
list.add("郭靖");
HashMap hashMap = new HashMap();
hashMap.put("001", "黄蓉");
hashMap.put("002", "郭靖");
}
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]