我在Java中有一个Strings
数组。我需要从数组中找到字谜并将它们打印到屏幕上。
我对我应该比较数组元素的部分有困难,以检查它们是否是字谜。我该怎么做?我必须制作一个循环来显示数组。
我认为我可以对String
进行排序,然后对它们进行比较(因为如果它们是字谜,它们在排序时会以相同的顺序包含相同的字母),但是我如何取消它们以获得它们原来的一句话?
答案 0 :(得分:4)
如果你按字母顺序排列字母而不是哈希,那么它们应该是相同的......
Map<String, List<String>> words = new HashMap<String, List<String>>();
for(String word : incomingWords) {
final String key = alphabetize(word);
if(words.contains(key)){
words.get(key).add(word);
} else {
words.put(key, new ArrayList<String>());
words.get(key).add(word);
}
}
现在你有Map
个字谜...你在List
中只有Map
只有1个条目,你可以从地图中删除只保留Map
个字典中包含其他字谜的字符......
答案 1 :(得分:0)
您可以使用Map
将有序String
映射到Collection
数组索引,这些索引是有序String
的字谜。