java - 值对并使用第一个 java 进行排序

标签 java sorting

我有一个包含成对值的大文件,我想根据第一个值对它们进行排序。例如

  1,2
  3,4
  1,3
  5,2
  1,5

我想根据第一个值对它们进行排序。我该怎么做?

最佳答案

假设您已完成用于读取文件并将其存储到某种类型的集合中的所有样板代码。然后,您可以根据每个字符串的第一个值对集合进行排序。

TreeSet<String> resultSet = myCollection.parallelStream().sorted(
            Comparator.comparingInt((String e) -> Integer.parseInt(e.substring(0,e.indexOf(",")))))
            .collect(Collectors.toCollection(TreeSet::new));

注意 - 确保在将文件累积到临时集合之前读取文件时已修剪掉每个字符串中的所有空格,或者如果需要,您可以在 e. substring 调用,即 e.trim().substring(0,e.indexOf(",")))

编辑

上述解决方案假设 myCollection 中的每个字符串在分隔符 , 之前或之后可以有超过 1 位数字。但是,假设 , 分隔符前后始终有 1 位数字,则无需对任何数据进行排序,而是在读取文件时使用 TreeSet 作为累加器集合,而不是使用HashSet 因为它会在您向集合添加字符串对象时对数据进行排序。

关于java - 值对并使用第一个 java 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47237452/

相关文章:

java - Apache Camel逐行分割csv

java - 使用 spring-data-redis 在 redis 中存储原始 json

php - 根据单独数组的顺序对数组进行排序

c++ - 结构数组中按字母顺序排序的问题气泡

java - 在 Mule 应用程序中使用参数

java - 如何使用 Spring Data 将任意数据的子文档持久化到 MongoDB?

Jquery DataTables 在排序时将顺序更改为 desc

使用 qsort() 使用函数指针按照用户想要的顺序进行排序的 C 代码

按字母顺序对 NSMutableArray 和 NSString 进行排序

java - 从只读文件夹启动时 Eclipse RCP 应用程序失败