什么是java集合?

mih*_*hir 8 java collections

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

Sea*_*oyd 26

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

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

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

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

final Set<String> basicSet = new HashSet<String>();
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)
Run Code Online (Sandbox Code Playgroud)

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

final SortedSet<String> sortedSet = new TreeSet<String>();
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)
Run Code Online (Sandbox Code Playgroud)

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

final List<String> strings = new ArrayList<String>();
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]
Run Code Online (Sandbox Code Playgroud)

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

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

等等

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


Jon*_*lis 11

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

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

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


aio*_*obe 10

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

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

收藏常见的例子是:ArrayList,HashSet,LinkedList,StackVector.

  • 使用此字段可以为答案添加注释.使用*Ask Question*链接询问新问题:) (4认同)

duf*_*ymo 3

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

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

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