【问题标题】:return the location of the largest String lexicographically in an ArrayList (Java)在 ArrayList (Java) 中按字典顺序返回最大字符串的位置
【发布时间】:2017-12-16 22:00:59
【问题描述】:

我有一个编码类的问题,我必须返回数组列表中最大字符串的位置(按字典顺序)。我不知道从哪里开始,有人可以帮我解决这个问题吗?>

【问题讨论】:

  • 首先打开您的 IDE 和编码。一旦您有具体问题或疑问,请随时在此处提问。在发布之前,请务必查看stackoverflow.com/help/how-to-ask。祝你好运!
  • 发布学校问题可能不是最好的主意,因为人们会非常犹豫提供代码。您需要做的是有一个字符串变量作为对已知最大字符串的引用。遍历ArrayList,如果当前迭代中的String大于当前保存的已知最大的String,则更新变量。
  • idownvotedbecau.se/noattempt --- start 的一个好地方可能是编写一个循环来遍历所有值。除非您打算使用 Streams,但这很可能超出了您的范围。
  • 当人们在没有展示他们编写的代码的情况下(作为一种尝试)提出这种性质的问题时,我觉得这是对社区的侮辱。我们不是来做你的作业的。。表现出一些努力!此外,请在 Stackoverflow 上阅读有关提问的指南。
  • 我推荐@ZacharyThompson 的建议,它很简单。要了解“词典编纂”一词的含义(尤其适用于这个问题),请查看:Lexicographically larger strings

标签: java arraylist


【解决方案1】:

Comparator 类允许您非常干净地对 List 施加顺序。

List<String> data = new ArrayList<>();
data.sort(Comparator.comparing(String::length).reversed());
data.get(0); // Will return the largest String

这将使用 String length() 方法对 List 进行排序并反转顺序,以便它首先按最大的 String 排序。请注意,您可以添加子排序,以便确定如何打破平局(对象被比较为相同)。为此,请按重要性顺序对数据进行排序,从最不重要的开始。

data.sort(Comparator.comparing(String::hashCode));
data.sort(Comparator.comparing(String::length).reversed());

将使用 hashCode() 方法然后按 length() 排序。这将产生按长度排序的效果,其中通过 hashCode 打破平局(通常尝试唯一区分对象)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多