以下のコードでは、次の行の意味は?アナグラムコード意味
m.put(alpha, l=new ArrayList<String>());
コード(アナグラムを求める):
try {
Scanner s = new Scanner(new File(args[0]));
while (s.hasNext()) {
String word = s.next();
String alpha = alphabetize(word);
List<String> l = m.get(alpha);
if (l == null)
m.put(alpha, l=new ArrayList<String>());
l.add(word);
}
} catch (IOException e) {
System.err.println(e);
System.exit(1);
}
は、「m」が何であるかによって異なります。関数の引数として代入によって混乱している場合は、Javaの代入では '+'と同じように演算子であることに注意してください。その結果、値が割り当てられます。さらに、変数の値を変更する副作用があります。 – Arkadiy
フルコードは[mcve]としてここに入力する必要があります。しかし、あなたはハッシュマップを持っているように見えます。それについて何が分かりませんか? –
Java 8では、これは 'm.computeIfAbsent(alpha、l - > new ArrayList())です。add(word);' –
4castle