我有一个程序需要一个单词和一个文本文件字典,并搜索字典中与给定单词相等(都是anagrams)的单词组合。字符串数组的排列Array列表Java
我最终得到了一个String数组的Arraylist,每个数组都是一个包含它使用的单词的解决方案,而Arraylist是所有的解决方案。
我然后遍历数组列表和数组作为排序:
List<String> list = Arrays.asList(array);
list.sort(Comparator.comparing(String::length).reversed().thenComparing(String::compareTo));
,其通过字长度(降序)排序第一,然后使用字母作为仲裁断路器相等的长度的话。
我现在已经单独的阵列进行排序,但我试图将它们按照一定的规则在ArrayList中的排序:按升序话
- ,和所有单词长度相同,数组按字母顺序排序。
- 字数相等,但长度不同:最长不等长的第一个。例如,如果[0]长度== b [0]长度但b [1]长度> a [1]长度,则b首先出现。
它们已经按单词升序存储,因为单词解决方案首先被发现,然后是2个单词等,被附加到数组列表中。
现在,随着排序后,数组也是在降序字长的顺序,我认为必须有一个简单的比较器来实现上述,但我努力做到这一点。