【问题标题】:noob level generic collection in javajava中的noob级泛型集合
【发布时间】:2012-02-06 06:36:42
【问题描述】:

关于:

List<String> mystring = new ArrayList<String>();

如果我错了,请纠正我:

ListCollection,也可以是SetQueueMap

String 是一个类型。

mystring 是此变量的名称,将是String 对象的通用集合。

ArrayList 是一个?也可能是?

如果我正在与其他开发人员交谈,我将ArrayList 称为什么?

【问题讨论】:

    标签: java generics types collections


    【解决方案1】:
    1. ArrayList 是 List 接口的一个实现。
    2. ArrayList 是 mystring 变量的具体类(但是在这种情况下,它应该是微不足道的,因为 mystring 是 List 类型)

    【讨论】:

      【解决方案2】:

      ArrayList&lt;String&gt; 是(命名错误的)mystring 变量的具体类型。

      【讨论】:

        【解决方案3】:
        1. List 是一个接口。 ArrayList 是实现此接口的具体类。
        2. 列表不能是SetQueueMapList 以外的任何内容。
        3. StringObject
        4. List&lt;String&gt; mystring = new ArrayList&lt;String&gt;(); 表示 myStringString 实例的集合(在本例中为列表)。

        【讨论】:

        • 我喜欢这个答案,虽然我认为你应该解释一下SetQueueMap 本身就是不从List 扩展的接口。另外第四点我觉得需要详细说明mystring 是(类型)Collection,因为CollectionList 的超级接口,在这种情况下它将是String 对象的List跨度>
        【解决方案4】:

        列表是一个接口。 ArrayList 是 List 的一个实现(和 LinkedList 一样)。

        【讨论】:

          【解决方案5】:

          列表是一个接口。它赋予对象一种行为。本例中的 ArrayList 就是实现。但它也可以是实现 List 接口的任何其他对象。向量是另一个例子。

          在这种情况下,Vector 的工作方式与 ArrayList 非常相似,但它是同步的。如果您需要并发,您可能会使用 Vector,但它是有代价的。它比 ArrayList 慢一点。

          如果您曾经在 Java Mobile 中工作过,您会发现您只有 Vector 而没有 ArrayList。

          ArrayList 可以是任何你想要的集合,但是你在声明中设置类型,所以当你从列表中检索对象时它会期望该类型。如果您需要其他任何东西,则必须进行铸造。

          【讨论】:

          • 所以[接口] [name] = new [接口的实现]();
          • 没错!您没有义务在声明中使用接口,但其最佳实践是使用满足您需求的第一个接口。例如,如果 Collection 具有您需要的方法,甚至不要使用 List。您也可以直接使用 ArrayList,但是将来如果您需要更改应用程序,这将更加困难,因为您需要更新所有引用。
          【解决方案6】:

          如果您正在与其他开发人员讨论此特定代码行,并且您的讨论主题是关于元素的有序集合,您可能应该将其称为 List。这样,您可以访问由 mystring 对象表征的所有 List 特定行为。

          您可以与任何集合(即列表、队列、集合)进行交互。然后,您只能访问所有这些类型之间的共同点行为。顺便说一句,Collecton 或更具体的 List 不能是 Map。

          【讨论】:

            猜你喜欢
            • 2013-11-19
            • 1970-01-01
            • 1970-01-01
            • 2017-12-24
            • 1970-01-01
            • 2016-07-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多