Java集合接口是Java语言中的一种重要抽象数据类型,它是一种用于存储和操作集合数据的标准化方法。它为开发人员提供了一种有效的方法来处理集合数据,从而使开发人员能够快速地实现多个功能。
Java集合接口是由Java语言中的java.util包定义的,它包含了大量的子接口,如List、Set、Map、Queue和Deque。这些子接口都有其特定的功能,并且都有自己独特的行为。
List 是 Java 集合中最常用的子接口,它允许存储有序列表中的元素。List 支持随机访问元素,并且允许重复元素存在。Set 是 Java 集合中不允许重复元素存在的子接口,它不保留顺序,但是可以快速地判断一个特定元素是否存在于 Set 中。Map 是 Java 集合中用来存储键值对形式数据的子接口,它不保留顺序,但是可以快速地根据键找到对应值。Queue 和 Deque 是 Java 集合中用来存储 FIFO 和 LIFO 结构数据的子接口。
public interface Collection<E> { // 返回集合大小 int size(); // 如果集合为空返回 true boolean isEmpty(); // 如果此 collection 含有特定对象返回 true boolean contains(Object o); // 返回此 collection 的迭代器 Iterator<E> iterator(); // 返回此 collection 的数组 Object[] toArray(); // 返回此 collection 的泛型数组 <T> T[] toArray(T[] a); // 向此 collection 添加特定对象 boolean add(E e); // 从此 collection 移除特定对象 boolean remove(Object o); ... ... ... // 省略部分代码 ... ... ... }
Collection接口是赖以集合框架建立的基础。它声明的所有集合的核心方法概括于下表中。
因为所有集合都要实现Collection,熟悉它的方法是对框架有清晰的认识很有必要。这几种方法都可以抛出一个 UnsupportedOperationException。
通过Collection的声明的方法概括如下表:
序号 | 方法描述 |
---|---|
1 | boolean add(Object obj) 添加obj 到调用集合。如果obj被添加到集合,则返回true。如果obj已经是集合的成员或者如果集合不允许重复则返回false。 |
2 | boolean addAll(Collection c) 增加了C的所有元素到调用集合。返回true如果操作成功(即,被添加的元素)。否则,返回false。 |
3 | void clear( ) 移除调用集合中的所有元素。 |
4 | boolean contains(Object obj) 如果obj是调用集合中的一个元素返回true。否则,返回false。 |
5 | boolean containsAll(Collection c) 如果调用集合中包含c的所有元素返回true。否则,返回false。 |
6 | boolean equals(Object obj) 如果调用集合与obj相等返回true。否则,返回false。 |
7 | int hashCode( ) 返回调用集合的哈希代码。 |
8 | boolean isEmpty( ) 如果调用集合为空返回true。否则,返回false。 |
9 | Iterator iterator( ) 返回一个迭代器的调用集合。 |
10 | boolean remove(Object obj) 从调用集合中移除一个实例obj。如果被删除的元素,则返回true。否则,返回false。 |
11 | boolean removeAll(Collection c) 删除从调用集合c中的所有元素。返回true如果集合改变(即,被删除的元素)。否则,返回false。 |
12 | boolean retainAll(Collection c) 移除调用集合,除了那些在c的所有元素。如果集合改变(即,被删除的元素)返回true。否则,返回false。 |
13 | int size( ) 返回调用集合举行的元素个数。 |
14 | Object[ ] toArray( ) 返回包含所有存储在调用集合的元素的数组。数组元素是元素集合的副本。 |
15 | Object[ ] toArray(Object array[ ]) 返回一个只包含那些元素集合的类型匹配数组的数组。 |
以下是例子来说明从上述集合方法不同的类实现一些方法:
import java.util.*; public class CollectionsDemo { public static void main(String[] args) { List a1 = new ArrayList(); a1.add("Zara"); a1.add("Mahnaz"); a1.add("Ayan"); System.out.println(" ArrayList Elements"); System.out.print(" " + a1); List l1 = new LinkedList(); l1.add("Zara"); l1.add("Mahnaz"); l1.add("Ayan"); System.out.println(); System.out.println(" LinkedList Elements"); System.out.print(" " + l1); Set s1 = new HashSet(); s1.add("Zara"); s1.add("Mahnaz"); s1.add("Ayan"); System.out.println(); System.out.println(" Set Elements"); System.out.print(" " + s1); Map m1 = new HashMap(); m1.put("Zara", "8"); m1.put("Mahnaz", "31"); m1.put("Ayan", "12"); m1.put("Daisy", "14"); System.out.println(); System.out.println(" Map Elements"); System.out.print(" " + m1); } }
以上实例编译运行结果如下:
ArrayList Elements [Zara, Mahnaz, Ayan] LinkedList Elements [Zara, Mahnaz, Ayan] Set Elements [Zara, Mahnaz, Ayan] Map Elements {Mahnaz=31, Ayan=12, Daisy=14, Zara=8}
Java SortedMap 接口 SortedMap接口扩展Map。它确保项目保持在升序键顺序。有几种方法没有项目在调用映射时抛出一个NoSuchElemen...
Java Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。 这种传统接...
Java Vector 类 Vector类实现了一个动态数组。和ArrayList和相似,但是两者是不同的:Vector是同步访问的。 Vector包含了许多传...
JavaFX教程 -JavaFX饼图表示圆圈中的数据的图表,每个切片表示百分比。import javafx.application.Application;import javafx.co...
Java JSON教程 -JSON JavaJSR 353解决了用于JSON处理的标准Java API,并作为JEE 7的一部分提供。参考实现jsonp可以从https://jso...