java数据结构01_集合概述

1.集合简单介绍

1.1集合的介绍

开发和学习中需要时刻和数据打交道,如何组织这些数据是我们编程中重要的内容。我们一般通过 “容器”来容纳和管理数据。

事实上,数组就是一种容器,可以在其中放置对象或基本类型数据。

**数组的优势:**是一种简单的线性序列,可以快速的访问数组元素,效率高。如果从效率和类型检查的角度讲,数组是最好的。

**数组的劣势:**不灵活!容量事先定义好,不能随着需求的变化而扩容。比如:我们在一个用户管理系统中,要把今天注册的所有用户取出来,那么这个用户有多少个?我们在写程序时是无法确定的。因此,也就不能使用数组。

由于数组远远不能满足我们对于“管理和组织数据的需求”,所以我们需要一种更强大、更灵活的,容量随时可扩的容器来装载我们的对象。 这就是我们今天要学习的容器或者叫集合,集合存储的数据必须是引用类型数据。

ArrayList是一种常见的集合,我们可以使用ArrayList 集合来管理和组织数据。

【示例】ArrayList存储和遍历元素案例

// 1.创建ArrayList集合对象
ArrayList list = new ArrayList();
// 2.通过add(obj)方法,添加元素
list.add(111); // 自动装箱
list.add(222);
list.add(333);
// 3.遍历数组
// 3.1通过size()方法,获取元素个数
for(int i = 0; i < list.size(); i++) {
	// 3.2通过get(index)方法,获取元素的值
	System.out.println(list.get(i));
}

1.2集合的继承关系

查看 ArrayList 类源码,我们发现它继承了抽象类 AbstractList同时又实现了接口 List,而 List 接口又继承了Collection 接口。因此,Collection 接口为最顶层集合接口了。
在这里插入图片描述
在这里插入图片描述
这说明我们在使用 ArrayList 类时,该类已经把所有抽象方法进行了重写。那么,实现 Collection

接口的所有子类都会进行方法重写。

Collection接口位于java.util包中,常用的派生接口是List接口和Set接口:

  • List接口常用的子类有:ArrayList类、LinkedList类、Vector类。

  • Set接口常用的子类有:HashSet类、LinkedHashSet类、TreeSet类。

在这里插入图片描述

1.3 Collection接口

既然 Collection 接口是集合中的顶层接口,那么 Collection 接口中定义的方法子类都可以使用。查询API,发现 Collection 接口中很多集合的操作方法,那么这些方法都具体能做什么呢?

Collection****接口中定义的方法
int size(); 容器中元素的数量。
boolean isEmpty(); 容器是否为空。
boolean add(Object o); 增加元素到容器中。
boolean addAll(Collection c); 将容器c中所有元素增加到本容器。
boolean remove(Object o); 从容器中移除元素。
boolean removeAll(Collection c); 移除本容器和容器c中都包含的元素。
boolean retainAll(Collection c); 取本容器和容器c中都包含的元素,移除非交集元素。
boolean contains(Object o); 容器中是否包含该元素。
boolean containsAll(Collection c); 本容器是否包含c容器所有元素。
Iterator iterator(); 获得迭代器,用于遍历所有元素。
Object[] toArray(); 把容器中元素转化成Object数组。

由于List、Set是Collection的子接口,意味着所有List、Set的实现类都有上面的方法。

【示例】演示 Collection 接口中的方法演示

// 1.创建集合
Collection coll = new ArrayList();
// 2.往集合中添加对象元素
coll.add("111");
coll.add("222");
coll.add("333");
coll.add("444");
System.out.println(coll); // 输出:"[111, 222, 333, 444]"
// 3.从集合中删除元素
coll.remove("111");
System.out.println(coll); // 输出:"[222, 333, 444]"
// 4.判断集合中是否包含指定元素
System.out.println(coll.contains("222")); // 输出:true
// 5.获取集合元素个数
System.out.println(coll.size());  // 输出:3
// 6.返回包含集合中所有元素的数组
Object[] arr = coll.toArray(); // 数组中结果为:[222, 333, 444]
// 7.清除集合元素
coll.clear(); // 清空后,集合元素为[],代表没有元素

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

发布了35 篇原创文章 · 获赞 0 · 访问量 367

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104535350