一个人至少拥有一个梦想,有一个理由去坚强

心若没有栖息的地方,到哪里都是在流浪

数据结构—集合

再次回顾java语言程序设计,觉得每次看都会有所进步。但是过不久,总是忘记。我发现之前看书亦是如此。缺少总结和复盘。因此现在打算做些笔记,方便日后回顾。

数据结构(data structure):以某种形式将数据组织在一起的合集(collection)。数据结构不仅存储数据,还支持访问和处理数据的操作。

在面向对象思想里,一种数据结构也被认为是一种容器(container)或者容器对象(container object),它是一个能存储其他对象(数据或者元素)的对象。数据结构类应该使用数据域存储数据,并提供方法支持查找、插入和删除的操作。因此创建数据结构就是创建这个类的一个实例。

集合

java集合框架支持以下两种类型的容器:

  • 一种是为了存储一个元素合集,简称为集合(collection)。
  • 另一种是为了存储键值对,称为映射表。

映射表放在下一篇文章讲解,本篇主要讲解集合。

下面是几种类型的集合:

  • Set 用于存储一组不重复的元素
  • List 用于存储一个有序元素合集
  • Stack 用于存储采用后进先出方式处理的对象
  • Queue 用于存储采用先进先出方式处理的对象
  • Priority Queue 用于存储按照优先级顺序处理的对象

这些集合的通用特性在接口中定义,在具体类中提供实现。

《数据结构—集合》

图1 集合是存储对象的容器

《数据结构—集合》

图2  Collection接口包含了处理集合中元素的方法,并且可以得到一个迭代器对象用于遍历集合中的元素

上面图可以看到Collection包含的所有方法。

注意:除开java.util.PriorityQueue没有实现Cloneable接口外,java合集框架中其他所有具体类都实现了java.lang.Cloneable和java.io.Serializable接口。因此,除开优先队列外,所有Cloneable的实例都是可克隆的,并且所有Cloneable的实例都是可序列化的。

迭代器

注:每种集合都是可以迭代的。可以获得集合的Iterator对象来遍历合集中的所有元素。

Collection接口继承自Iterable接口。Iterable接口中定义了iterator方法,该方法会返回一个迭代器。

例如:

Collection<String> collection = new ArrayList<>();
collection.add("hello");
collection.add("world");
collection.add("i");
collection.add("love");

Iterator<String> iterator = Collection.iterator();
while(iterator.hasNext()) {
  System.out.println(iterator.next.toUpperCase());
}

 

 

 

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注