什么是java集合?

我想知道:Java中的集合是什么?

通常是java.util.Collection的一个实例(尽管java.util.Map正式也是集合框架的一部分)

虽然Collection接口可以直接实现,但通常客户端代码将使用其中一个子接口的实现: Set , List , Queue / Deque

下面是一些示例代码(在左侧,您通常会看到一个接口,而在右侧则是一个实现类)。

集合不存储重复项,它们的所有元素都是唯一的:

final Set basicSet = new HashSet(); basicSet.add("One"); basicSet.add("Two"); basicSet.add("One"); basicSet.add("Three"); System.out.println(basicSet.toString()); // Output: [Three, One, Two] // (seemingly random order, no duplicates) 

SortedSets是以特定顺序存储元素的集合的特例:

 final SortedSet sortedSet = new TreeSet(); sortedSet.add("One"); sortedSet.add("Two"); sortedSet.add("One"); sortedSet.add("Three"); System.out.println(sortedSet.toString()); // Output: [One, Three, Two] // (natural order, no duplicates) 

列表允许您多次存储值并访问或修改插入顺序:

 final List strings = new ArrayList(); strings.add("Two"); strings.add("Three"); strings.add(0, "One"); // add item to beginning strings.add(3, "One"); // add item at position 3 (zero-based) strings.add("Three"); strings.add(strings.size() - 1, "Two"); // add item at last-but-one position System.out.println(strings); // Output: [One, Two, Three, One, Two, Three] 

定义列表还有一个实用的简写:

 List strings = Arrays.asList("One", "Two", "Three"); // this returns a different kind of list but you usually don't need to know that 

等等

要更好地理解,请阅读Sun Java Tutorial(在线)中的Collections Trail ,或者Maurice Naftalin和Philip Wadler的Java Generics and Collections 。

我认为这个问题最好以非编程的方式回答。

假设你有5个球,你想轻松移动它们。 你得到一个袋子并将5个球放在里面。 袋子充当容器。 你现在可以移动这个包,所以5个球很容易随之移动。

简单地说,您将零个或多个对象放在另一个对象内,以便于检索。

Collection是Java API中的一个接口, 根据文档它是……

集合层次结构中的根接口。 集合表示一组对象,称为其元素。 有些集合允许重复元素而其他集合则不允许。 有些是订购的,有些是无序的。 JDK不提供此接口的任何直接实现:它提供了更具体的子接口(如Set和List)的实现。 此接口通常用于传递集合并在需要最大通用性的情况下对其进行操作。

集合的常见示例是: ArrayListHashSetLinkedListStackVector

它是一个实现java.util.Collection接口的类。

对于那些实现java.util.Map的人来说,还有另一个分支。

这些是Java中数据结构的基础:List,Set,LinkedList,HashMap,TreeMap等。

引用Java API “集合 – 有时称为容器 – 只是一个将多个元素组合成一个单元的对象。”