java - 不兼容的类型需要找到的对象条目
问题描述
我想打印字符串的所有排列而不递归。它会在和处生成错误不兼容类型所需的对象找到条目。我该如何解决这个问题请帮助!for (Entry chr1 : firstMap.entrySet())
for (Entry chr2 : secondMap.entrySet())
public static List genPermutation(String input) {
Map firstMap = new LinkedHashMap();
Map secondMap = new LinkedHashMap();
List output = new ArrayList();
char[] chr = input.toCharArray();
for (int i = 0; i < chr.length; i++) {
firstMap.put(Character.valueOf(chr[i]), String.valueOf(chr[i]));
secondMap.put(Character.valueOf(chr[i]), String.valueOf(chr[i]));
}
for (Entry chr1 : firstMap.entrySet()) {
for (Entry chr2 : secondMap.entrySet()) {
if (chr1.getValue().equals(chr2.getValue())) {
output.add(String.valueOf(chr1.getValue()));
} else {
output.add(String.valueOf(chr1.getValue())
+ String.valueOf(chr2.getValue()));
}
}
}
return output;
}
解决方案
由于firstMap
's 的类型是原始类型Map
,因此firstMap.entrySet()
返回一个原始Set
类型,其元素是类型Object
,而不是类型Entry
。
使用参数化类型而不是原始类型:
public static List<String> genPermutation(String input) {
Map<Character,String> firstMap = new LinkedHashMap<>();
Map<Character,String> secondMap = new LinkedHashMap<>();
List<String> output = new ArrayList<>();
char[] chr = input.toCharArray();
for (int i = 0; i < chr.length; i++) {
firstMap.put(Character.valueOf(chr[i]), String.valueOf(chr[i]));
secondMap.put(Character.valueOf(chr[i]), String.valueOf(chr[i]));
}
for (Map.Entry<Character,String> chr1 : firstMap.entrySet()) {
for (Map.Entry<Character,String> chr2 : secondMap.entrySet()) {
if (chr1.getValue().equals(chr2.getValue())) {
output.add(String.valueOf(chr1.getValue()));
} else {
output.add(String.valueOf(chr1.getValue())
+ String.valueOf(chr2.getValue()));
}
}
}
return output;
}
推荐阅读
- android - Flutter 问题动态链接在 whatsapp 中打开应用程序
- regex - 具有 Unicode 属性 \\pL 或 \\p{L} 的 scalajs 正则表达式
- reactjs - 显示网页前获取外部数据的标准方法(2021 年 9 月)
- r - 如何使用 ggplot2 将长文本和数据添加到 x 刻度标签
- c# - JavaScriptSerializer 序列化星期属性
- zipkin - Brave 的有效 traceId 是什么?
- python - 在 R Studio 中加载 GloVe 文本文档
- discord.py - How I can load a font file with PIL.ImageFont.truetype in replit
- java - PropertyReferenceException:Spring Data JPA 错误找不到类型的属性
- python - docker+sanic: curl: (52) 来自服务器的空回复