import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
// 与ãˆã‚‰ã‚ŒãŸæ•´æ•°åž‹ã®ãƒªã‚¹ãƒˆ
List<Integer> originalList = Arrays.asList(1, 2, 3, 2, 4, 5, 1, 6, 7, 8, 9, 5);
// é‡è¤‡ã‚’削除ã—ã¦ã‚»ãƒƒãƒˆã«å¤‰æ›
Set<Integer> uniqueSet = new HashSet<>(originalList);
// セットを新ã—ã„リストã«å¤‰æ›
List<Integer> resultList = new ArrayList<>(uniqueSet);
// çµæžœã‚’表示
System.out.println("å…ƒã®ãƒªã‚¹ãƒˆ: " + originalList);
System.out.println("é‡è¤‡ã‚’削除ã—ã¦ã‚»ãƒƒãƒˆã«å¤‰æ›: " + uniqueSet);
System.out.println("æ–°ã—ã„リスト: " + resultList);
}
}
ã“ã®ã‚³ãƒ¼ãƒ‰ã§ã¯ã€HashSet を使用ã—ã¦é‡è¤‡ã‚’削除ã—ã€ãã®å¾Œ ArrayList コンストラクタを使用ã—ã¦ã‚»ãƒƒãƒˆã‚’æ–°ã—ã„リストã«å¤‰æ›ã—ã¦ã„ã¾ã™ã€‚最終的ã«ã€å…ƒã®ãƒªã‚¹ãƒˆã€ã‚»ãƒƒãƒˆã«å¤‰æ›ã•れãŸã‚‚ã®ã€ãŠã‚ˆã³æ–°ã—ã„リストãŒè¡¨ç¤ºã•れã¾ã™ã€‚
Javaã®ã‚»ãƒƒãƒˆï¼ˆSet)ã¯ã€ãƒ¦ãƒ‹ãƒ¼ã‚¯ãªè¦ç´ ã®é›†åˆã‚’表ç¾ã™ã‚‹ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã§ã™ã€‚セットã¯ä»¥ä¸‹ã®ç‰¹å¾´ã¨ä½¿ç”¨æ³•ã‚’æŒã£ã¦ã„ã¾ã™ã€‚
セットã®åŸºæœ¬çš„ãªç‰¹å¾´ã¨ä½¿ç”¨æ³•
特徴:
- é‡è¤‡ã‚’許ã•ãªã„: セットã¯åŒã˜è¦ç´ ã‚’é‡è¤‡ã—ã¦æ ¼ç´ã™ã‚‹ã“ã¨ã‚’許ã—ã¾ã›ã‚“。è¦ç´ ã¯ä¸€æ„ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
- é †åºã‚’ä¿è¨¼ã—ãªã„: セットã¯è¦ç´ ã®é †åºã‚’ä¿è¨¼ã—ã¾ã›ã‚“。è¦ç´ ãŒè¿½åŠ ã•れãŸé †åºãŒã‚»ãƒƒãƒˆå†…ã§ä¿æŒã•れるã¨ã¯é™ã‚Šã¾ã›ã‚“。
- null を許容: セットã¯
nullè¦ç´ を許容ã—ã¾ã™ã€‚ãŸã ã—ã€é€šå¸¸ã¯ä¸€ã¤ã®nullè¦ç´ ã®ã¿ãŒè¨±å®¹ã•れã¾ã™ã€‚
使用法:
セットã®ä½œæˆ:
Set<String> stringSet = new HashSet<>(); // HashSet ã®å ´åˆ
Set<Integer> integerSet = new TreeSet<>(); // TreeSet ã®å ´åˆ
HashSet ã‚„ TreeSet ãªã©ã€ç•°ãªã‚‹å®Ÿè£…ãŒã‚りã¾ã™ã€‚HashSet ã¯é †åºã‚’ä¿è¨¼ã—ãªã„ãŒé«˜é€Ÿã€TreeSet ã¯é †åºãŒè‡ªç„¶é †åºã«åŸºã¥ã„ã¦ã„ã‚‹ãŒæ“ä½œã«æ™‚é–“ãŒã‹ã‹ã‚‹å ´åˆãŒã‚りã¾ã™ã€‚
è¦ç´ ã®è¿½åŠ :
stringSet.add("Apple");
stringSet.add("Banana");
stringSet.add("Orange");
add メソッドを使用ã—ã¦è¦ç´ をセットã«è¿½åŠ ã—ã¾ã™ã€‚
è¦ç´ ã®å‰Šé™¤:
stringSet.remove("Banana");
remove メソッドを使用ã—ã¦æŒ‡å®šã—ãŸè¦ç´ をセットã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã€‚
è¦ç´ ã®å˜åœ¨ç¢ºèª:
boolean containsOrange = stringSet.contains("Orange");
contains メソッドを使用ã—ã¦æŒ‡å®šã—ãŸè¦ç´ ãŒã‚»ãƒƒãƒˆå†…ã«å˜åœ¨ã™ã‚‹ã‹ç¢ºèªã—ã¾ã™ã€‚
セットã®çµåˆ:
Set<Integer> setA = new HashSet<>(Arrays.asList(1, 2, 3));
Set<Integer> setB = new HashSet<>(Arrays.asList(3, 4, 5));
setA.addAll(setB);
addAll メソッドを使用ã—ã¦ä»–ã®ã‚»ãƒƒãƒˆã®è¦ç´ ã‚’è¿½åŠ ã—ã¦çµåˆã—ã¾ã™ã€‚
セットã®å·®åˆ†:
Set<Integer> setDifference = new HashSet<>(setA);
setDifference.removeAll(setB);
removeAll メソッドを使用ã—ã¦ä»–ã®ã‚»ãƒƒãƒˆã¨ã®å·®åˆ†ã‚’å–å¾—ã—ã¾ã™ã€‚
セットã®äº¤å·®ï¼ˆå…±é€šéƒ¨åˆ†ï¼‰:
Set<Integer> setIntersection = new HashSet<>(setA);
setIntersection.retainAll(setB);
retainAll メソッドを使用ã—ã¦ä»–ã®ã‚»ãƒƒãƒˆã¨ã®å…±é€šéƒ¨åˆ†ã‚’å–å¾—ã—ã¾ã™ã€‚
セットã¯è¦ç´ ã®ä¸€æ„性ãŒå¿…è¦ãªå ´åˆã‚„è¦ç´ ã®é †åºãŒä¸è¦ãªå ´åˆã«æœ‰ç”¨ã§ã™ã€‚æ“作ãŒé«˜é€Ÿã§ã‚りã€é‡è¤‡è¦ç´ を効率的ã«ç®¡ç†ã§ãã¾ã™ã€‚é©åˆ‡ãªå®Ÿè£…ã‚’é¸æŠžã—ã¦ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®è¦ä»¶ã«åˆã‚ã›ã¦ã‚»ãƒƒãƒˆã‚’使用ã—ã¾ã—ょã†ã€‚
セットã¯ä¸€æ„ãªè¦ç´ ã®é›†åˆã‚’表ç¾ã—ã€ãã®ç‰¹å¾´ã«ã‚ˆã‚Šãƒ‡ãƒ¼ã‚¿ã‚’効率的ã‹ã¤åŠ¹æžœçš„ã«æ‰±ã†ã“ã¨ãŒã§ãã¾ã™ã€‚è¦ç´ ã®é‡è¤‡ã‚’許ã•ãªã„æ€§è³ªã‚„é †åºã®ä¸ä¿è¨¼ã«ã‚ˆã‚Šã€ç‰¹å®šã®è¦ä»¶ã«é©ã—ãŸæŸ”軟ã§åŠ¹çŽ‡çš„ãªãƒ‡ãƒ¼ã‚¿æ§‹é€ ã¨ã—ã¦åˆ©ç”¨ã•れã¾ã™ã€‚
セットを使用ã™ã‚‹ã“ã¨ã§ã€è¦ç´ ã®ä¸€æ„性を簡å˜ã«ç¢ºä¿ã—ã€é›†åˆæ“作(çµåˆã€å·®åˆ†ã€äº¤å·®ï¼‰ã‚’行ã†ã“ã¨ãŒã§ãã¾ã™ã€‚ç•°ãªã‚‹å®Ÿè£…(例: HashSetã€TreeSetï¼‰ãŒæä¾›ã•れã¦ãŠã‚Šã€ãã®ç‰¹æ€§ã«åŸºã¥ã„ã¦é©åˆ‡ãªé¸æŠžãŒã§ãã¾ã™ã€‚
最é©ãªã‚»ãƒƒãƒˆã®é¸æŠžã¨é©åˆ‡ãªæ“作を組ã¿åˆã‚ã›ã‚‹ã“ã¨ã§ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®åŠ¹çŽ‡æ€§ã‚„å¯èªæ€§ã‚’å‘上ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚セットをç†è§£ã—ã€é©åˆ‡ã«åˆ©ç”¨ã™ã‚‹ã“ã¨ã§ã€å¤šæ§˜ãªå•題ã«å¯¾å‡¦ã™ã‚‹ãŸã‚ã®å¼·åŠ›ãªãƒ„ールã¨ãªã‚Šã¾ã™ã€‚
「020 コレクションフレームワークã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント