【问题标题】:What is a java collection? [closed]什么是 Java 集合? [关闭]
【发布时间】:2010-08-30 09:35:38
【问题描述】:

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

【问题讨论】:

  • 编辑了之前的编辑,创建“googleable”标签没有意​​义
  • 我想要一个“Googeable”徽章
  • 作为一个努力学习自己的人。让我提出一些建设性的批评。先做功课,然后向别人展示这种劳动的成果。先谷歌这个问题。然后创建一些具体的例子,看看其他人是否可以批评你的理解。通过这种方式,你建立了对自己的尊重,也尊重他人。祝你好运。我们都在学习。
  • 有没有人意识到人们几乎 100% 的时间都是通过谷歌搜索到达 stackoverflow 问题,而再次谷歌搜索只会让你回到这里?

标签: java collections


【解决方案1】:

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

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

这里是一些示例代码(左侧通常是一个接口,右侧是一个实现类)。

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

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)

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)

Lists 让您可以多次存储一个值并访问或修改插入顺序:

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]

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

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

等等

为了更好地理解,请阅读 Sun Java 教程(在线)中的 The Collections Trail,或 Maurice Naftalin 和 Philip Wadler 的 Java Generics and Collections

【讨论】:

    【解决方案2】:

    我认为这个问题最好在非编程意义上回答。

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

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

    【讨论】:

      【解决方案3】:

      Collection是Java API中的一个接口,according to the docs是……

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

      集合的常见示例有:ArrayListHashSetLinkedListStackVector

      【讨论】:

      • 谢谢你告诉我,请解释一下java中的内部类和外部类是什么
      • 使用此字段将 cmets 添加到答案中。使用 链接提出新问题 :)
      【解决方案4】:

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

      还有另一个分支供那些实现 java.util.Map 的人使用。

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2010-12-20
          • 2012-12-29
          • 1970-01-01
          • 1970-01-01
          • 2013-10-12
          • 2010-10-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多