ディネッシュバブ:
私はそれがすでに存在する場合は、リストを取得し、それに要素を追加しています。
コードスニペット:
Map<Integer, List<Integer>> map = new TreeMap<>(Collections.reverseOrder());
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
int factor = 0;
int num = sc.nextInt();
for (int j = 1; j <= num; j++)
if (num % j == 0) factor++; //just getting factor count of each input
map.put(factor, map.getOrDefault(factor, new ArrayList<>()).add(num)); // error line
エラーの詳細:
エラー:互換性のない型:ブール値は、リストに変換することはできません
このトラブルを解決する方法は?
Nzr_art:
のでaddは()があるboolean
戻り値の型として。あなたは持っているマップするためにブール値を置くことができないList<Integer>
値として。
あなたは、作成する必要があるのArrayListを >最初にそれに要素を追加します- 。
そしてだけにして値としてマップにそれを置きます:
List<Integer> list = new ArrayList<>();
list.add(num);
map.put(factor, map.getOrDefault(factor, list));
Javaの9+からは、あなたが使用することができますList.of()
:
map.put(factor, map.getOrDefault(factor, List.of(num)));