java - 如何对包含整数的 ArrayList<String> 进行排序?

标签 java arrays sorting arraylist comparator

我制作了一个单词计数器二叉搜索树,当一个单词被多次输入时它会增加该单词的计数。单词和单词计数都保存在树中。我尝试先打印计数最高的单词,然后按计数降序打印。

为了执行此操作,我将 BST 转换为 ArrayList,但现在我似乎无法弄清楚如何通过递减计数顺序对列表进行排序。这是我到目前为止所拥有的:

public ArrayList<String> toArray() {
  ArrayList<String> result = new ArrayList<String>();
  toArrayHelp(root, result);
  Collections.sort(result);
  return result;
}

private void toArrayHelp(Node<String, Integer> node, ArrayList<String> result) {
  if (node == null) {
      return;
  }
  toArrayHelp(node.left, result); 
  result.add("count: " + String.valueOf(node.count) + "/t word: " + node.data); 
  toArrayHelp(node.right, result); 
}

我试过 Collections.sort() 但这不是按字符串排序,而是按单词排序。

最佳答案

  • 遍历树,生成 List<Node<String, Integer>>来自所有元素
  • List 进行排序, 按节点的整数部分排序
  • 创建一个只保留字符串的列表,顺序相同

关于java - 如何对包含整数的 ArrayList<String> 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55910587/

相关文章:

java - 使用 Java 的 Selenium Webdriver : Exception in thread "main" org. openqa.selenium.ElementNotVisibleException:

java - 如何在 Android 中保存 FCM token ?

java - 使用正则表达式验证 EditText 中的 [Preference] 文件名

c++ - 静态数组的行为改变了吗?

java.com 上无法识别 Java 版本

ios - 如何唯一标识 UITableView 中的每个单元格

arrays - 如何在 Swift 4.2 中创建数据类型泛型

arrays - 如何在 Perl 中按列对数组或表进行排序?

java - Java的排序算法是什么

python - 当它们是 DATETIME 时按键对 DICT 进行排序