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个球随之移动.
简单地说,您将零个或多个对象保存在另一个对象内,以便于检索.
它是一个实现 java.util.Collection 接口的类。
对于那些实现 java.util.Map 的人来说,还有另一个分支。
这些是 Java 中数据结构的基础:List、Set、LinkedList、HashMap、TreeMap 等。