首页 > 解决方案 > 有没有办法对整数数组进行排序并对另一个字符串数组进行相同的更改

问题描述

我正在做一个学校项目,而不是让我制作一个程序,而不是用一个字符串计算字符串中所有单词出现的次数。通过制作数组,我设法做到了这一点。一个数组是字符串数组,它保存单词,另一个整数数组保存单词出现的次数。一个特定的单词及其出现的次数在两个数组中具有相同的元素编号。

但我的问题是按降序对它们进行排序,起初我认为我可以通过使用这行代码来做到这一点:

 Arrays.sort(thenumbers, Collections.reverseOrder()); 

但我意识到这会对单词出现的次数进行排序,但这会破坏整个程序,因为单词和数字在数组中会有不同的元素编号。

有没有办法来解决这个问题?

任何帮助将不胜感激,谢谢!

标签: javaarrays

解决方案


您不必制作 2 个单独的数组。使用流 API 查找每个单词在 String 中出现的次数是非常标准的解决方案:

import static java.util.stream.Collectors.*;

Map<String, Long> map = Arrays.stream(sourceString.split(" "))
        .collect(groupingBy(Function.identity(), counting()))

这为您提供了一个以单词为键的地图,以及作为值出现的次数。然后,您可以使用Sort a Map<Key, Value> by values中的任何解决方案按值对地图进行排序


推荐阅读