020-003-002

Set操作:重複のないコレクション管理

中級

問題説明

HashSetの集合演算

この問題では: 2つの整数リストをHashSetに変換し、retainAll()メソッドで積集合(共通要素)を求め、昇順にソートして標準出力に表示するプログラムを作成します。

HashSetのretainAll()メソッドで積集合を求められます。

積集合の求め方

Set<Integer> set1 = new HashSet<>(list1);
Set<Integer> set2 = new HashSet<>(list2);
set1.retainAll(set2); // set1が積集合になる

学習ポイント

  • retainAll()は元のセットを変更する破壊的操作
  • 結果をソートするにはListに変換してCollections.sort()を使う
  • addAll()で和集合、removeAll()で差集合も計算可能

テストケース例

※ 出力例はプログラミングの国際標準に準拠し英語で表示しています

入力:
4
1 2 3 4
4
3 4 5 6
期待される出力:
3 4
入力:
3
1 2 3
3
4 5 6
期待される出力:
No common elements
入力:
5
5 3 1 3 5
4
1 5 7 9
期待される出力:
1 5
入力:
2
10 10
2
10 10
期待される出力:
10
❌ テストに失敗したケースがあります
❌ エラー発生

あなたの解答

現在のモード: 自分のコード
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// ここにコードを書いてください

sc.close();
}
}
0 B / 5 MB

残り 9 回実行可能