私は単語のリストを受け取るプログラムを書いています。その後、繰り返し単語と2つの異なるリストに繰り返されない単語を格納します。ダウンセットを反復する
、左、上、左、
権利である:しかし
public class Runner { public static void run (Set<String> words) { Set<String> uniques= new HashSet<String>(); Set<String> dupes= new HashSet<String>(); Iterator<String> w = words.iterator(); while (w.hasNext()) { if (!(uniques.add(w.next()))) { dupes.add(w.next()); } else { uniques.add(w.next()); } } System.out.println ("Uniques: "+ uniques); System.out.println ("Dupes: "+ dupes); } }
、以下のための出力:私のコードは次のようである
ユニーク:[左、右、上、下]
Dupes:[]
、私の希望は次のようになります。
ユニーク:[左]
I:
Dupes [ダウン、アップ、左、右]セットを使ってこれを達成したい。私はそれがArrayListだけの方法が簡単だろうが、私はセットを理解しようとしています。
Dupesが、私は 'リストリストを使用してコードをテストしている –
ZeldaX
@DragonAssassin所望の出力を返さない=は、Arrays.asListが(「右」、「左」、「左」は、「ダウン」 );実行(リスト); '。あなたの望む出力を表示します。あなたはrunメソッドを呼び出すために使用しているコードを提供できますか? – DragonAssassin