Java 集合框架体系简介

打印 上一主题 下一主题

主题 876|帖子 876|积分 2628

为什么要使用集合

存储多个数据可以使用数组,但由于数组在内存中是连续存储的,所以会有一些限制。比如数组在创建时就要指定长度,即可以容纳的元素个数,且指定后无法更改;数组在创建时需要指定元素的类型,并且所有元素都必须是该类型或其子类;添加或删除数组中的元素需要创建一个新数组再进行元素复制,比较麻烦。下面是 Person 数组扩容的示意代码。
  1. // 给 people1 数组末尾添加一个元素
  2. public class PersonArray {
  3.     public static void main(String[] args) {
  4.         Person[] people1 = new Person[1];
  5.         people1[0] = new Person();
  6.         // 创建新数组
  7.         Person[] people2 = new Person[people1.length + 1];
  8.         // 复制 people1 数组的元素到 people2
  9.         for (int i = 0; i < people1.length; i++) {
  10.             people2[i] = people1[i];
  11.         }
  12.         // 添加新元素
  13.         people2[people2.length - 1] = new Person();
  14.     }
  15. }
复制代码
数组可以通过索引快速访问和操作元素,在许多场景下仍然是非常有用的,但如果需要动态调整大小或保存不同类型的元素,则可以考虑使用集合类来代替数组。集合类还提供了一系列增加、删除、修改和查找元素的方法。集合框架中还提供了多种优化和封装好的实现类,通过使用合适的集合类可以更高效地组织和操作数据。
集合框架体系

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


Collection接口有List和Set这两个重要的子接口,它们的实现子类都是单列集合。其中List接口表示有序的、可以包含重复元素的集合,常见的实现类有ArrayList、LinkedList和Vector。Set接口表示无序的且不包含重复元素的集合,常见的实现类有HashSet、TreeSet和LinkedHashSet。
Map接口实现子类是双列集合,表示一组键值对的映射,其中每个键都是唯一的。常见的实现类有HashMap、Hashtable和Properties。
  1. public class AddElements() {
  2.   public static void main(String[] args) {
  3.     ArrayList<Object> list = new ArrayList<>();
  4.     list.add("黄蓉");
  5.     list.add("郭靖");
  6.     HashMap hashMap = new HashMap();
  7.     hashMap.put("001", "黄蓉");
  8.     hashMap.put("002", "郭靖");
  9.   }
  10. }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表