Java 集合类之 Collection 接口,集合的“爸爸,21 条 MySQL 性能调优经验
.
=========================================================================
在 Java 中,集合可以看做是一个容器,如它可以是一个衣柜,里面装满了不同的衣服;它也可以是一个书柜,里面塞满了各种各样不同的书籍,我们可以随时的将它们取出或者放入,并且可以按照一定的顺序存放这些在容器中的元素。
在 Java 中提供了不同的集合类,也可以说是不同形状的容器,而这些类提供了不同的存储方式,同时还提供了相应的方法。从而方便用户对集合中的元素进行遍历、添加、删除以及提取指定对象等操作。
.
==============================================================================
从表面上看,数组和集合都是存储数据的一种方法,但是需要注意了!
数组的存取长度是固定的,而集合的存取长度是可变的,也就是说,你在使用数组的时候,会先将数组的长度定义好,比如 100,那么你就只能在这个数组中存放 100 个数据,而集合就不同了,集合的长度是不固定的,其中的元素个数可以是 0、1,也可以是 1000 或者 10000。
在数据的存储上,集合和数组也是有不同的,数组存放的是基本的数据类型,也就是如果是 int 型,则内部元素就一定是 int 型,而集合就不一样了,集合是用来存放对象的引用,在集合中的元素可以是 int 型,string 型等任意数据类型。
我们平常在进行开发的时候常用的集合有 List 集合、Set 集合和 Map 集合,而 List 集合和 Set 集合就继承了我们今天要说的 Collection 接口,所以才将其叫做“爸爸”接口嘛。而且各接口还提供了不同是实现类。这里有一个集合类的继承关系图,小伙伴可以参考:
那么接下来,大灰狼就来和大家聊一聊这个能够成为 List 集合和 Set 集合的继承的接口的“爸爸”接口是怎样的。
.
===============================================================================
Collection 接口是层次结构中的根接口,构成 Collection 的单位成为元素,一般来说呢,Collection 接口不能直接使用,但是该接口提供了增加、删除元素和管理数据的一些方法,并且由于 List 集合和 Set 集合继承了 Collection 接口,因此这些方法对于 List 集合和 Set 集合都是通用的。
下表就是 Collection 接口常用的一些方法:
| 方法 | 功能描述 |
| --- | --- |
| add(E) | 将指定的对象添加到该集合中 |
| remove(Object) | 将指定的对象从该集合中移除 |
| IsEmpty() | 返回 boollean 值,判断当前集合是否为空 |
| Iterator() | 返回在此 Collection 的元素上进行迭代的迭代器,用于遍历集合中的对象 |
| Size() | 返回 int 型数值,获取该集合中元素的个数 |
.
=============================================================================
想要遍历集合中的元素,一般都是通过迭代器来实现,Collection 接口中的 Iterator()方法返回在此 Collection 接口处进行迭代的迭代器,通过 while 循环进行遍历。
下面是使用 Collection 接口进行集合的创建与遍历的过程:
package priject1;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class ArrayList_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个 Collection 接口的列表
Collection<String> list1 = new ArrayList<>();
list1.add("a");
list1.add("b");
list1.add(
"c");
//创建一个迭代器用于接收 list1 集合的迭代器
Iterator<String> lt = list1.iterator();
while(lt.hasNext())
{
//观察 lt.hasNext()此时的值
//System.out.println(lt.hasNext());
String string = (String) lt.next();
System.out.println(string);
评论