【问题标题】:Trying to use Collections.sort (ArrayList<String>) and Collections.sort(ArrayList<String>, Comparator) with no luck尝试使用 Collections.sort (ArrayList<String>) 和 Collections.sort(ArrayList<String>, Comparator) 没有运气
【发布时间】:2014-04-13 16:14:47
【问题描述】:

我这样创建了一个简单的字符串数组列表:

ArrayList<String> filmDirectory = new ArrayList<String>();
filmDirectory.add("Gone with the Wind");
filmDirectory.add("The Sound of Music");
filmDirectory.add("The Titanic");
Collections.sort(filmDirectory);

编译器提示我将 filmDirectory 设置为一个列表,我这样做了,但我不明白为什么要这样做,因为 ArrayList 是 List 的扩展。

不过,当代码到达:

Collections.sort((List)filmDirectory);

我有一个编译器错误: java.lang.ClassCastException:java.util.ArrayList 无法转换为 acmx.export.java.util.List

实现 Comparator 并为当前类定义 compare 方法并使用 Collections.sort(filmDirectory, this) 也无济于事。

【问题讨论】:

  • 确保您的收藏导入来自java.util.*。 (至少List 显然不是)。
  • 您导入了错误的 List 类。我猜你的 java 类路径不正确。
  • 谢谢!这解决了问题。导入整个 java.util.*,而不是其中的一部分。

标签: java sorting collections


【解决方案1】:

您似乎为Collections 导入了错误的包:您使用的是acmx.export.java.util 而不是java.util.*

【讨论】:

    【解决方案2】:

    您应该导入 java.util 包的 ListArrayList 类。删除关于 acmx.export.java.util 包的导入并添加这两行导入:

    import java.util.List
    import java.util.ArrayList
    

    它应该可以解决你的问题。

    【讨论】:

      【解决方案3】:

      尝试添加import java.util.*; 以避免此错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-07
        • 2012-07-13
        • 1970-01-01
        • 1970-01-01
        • 2017-08-30
        • 1970-01-01
        • 2012-05-12
        • 2014-07-22
        相关资源
        最近更新 更多