import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 与ãˆã‚‰ã‚ŒãŸãƒªã‚¹ãƒˆ
List<String> fruits = new ArrayList<>(Arrays.asList("Apple", "Banana", "Orange", "Grapes", "Kiwi"));
// イテレーターã®å–å¾—
Iterator<String> iterator = fruits.iterator();
// イテレーターを使用ã—ã¦å„è¦ç´ ã‚’ "Updated" ã«å¤‰æ›´
while (iterator.hasNext()) {
iterator.next(); // イテレーターを進ã‚ã¦ç¾åœ¨ã®è¦ç´ ã«ã‚¢ã‚¯ã‚»ã‚¹
iterator.remove(); // ç¾åœ¨ã®è¦ç´ を削除
iterator.add("Updated"); // "Updated" ã¨ã„ã†è¦ç´ を追åŠ
}
// 変更後ã®ãƒªã‚¹ãƒˆã‚’表示
System.out.println(fruits);
}
}
イテレーターã®å–å¾—:
Iterator<String> iterator = fruits.iterator();
iterator メソッドを使用ã—ã¦ã€ãƒªã‚¹ãƒˆ fruits ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ¼ã‚’å–å¾—ã—ã¾ã™ã€‚
イテレーターを使用ã—ã¦å„è¦ç´ ã‚’ “Updated” ã«å¤‰æ›´:
while (iterator.hasNext()) {
iterator.next(); // イテレーターを進ã‚ã¦ç¾åœ¨ã®è¦ç´ ã«ã‚¢ã‚¯ã‚»ã‚¹
iterator.remove(); // ç¾åœ¨ã®è¦ç´ を削除
iterator.add("Updated"); // "Updated" ã¨ã„ã†è¦ç´ を追åŠ
}
イテレーターを使用ã—ã¦ã€å„è¦ç´ ã‚’ “Updated” ã«å¤‰æ›´ã—ã¾ã™ã€‚iterator.next() ã§ç¾åœ¨ã®è¦ç´ ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã€iterator.remove() ã§ç¾åœ¨ã®è¦ç´ を削除ã—ã€iterator.add(“Updated”) ã§ “Updated” ã¨ã„ã†è¦ç´ ã‚’è¿½åŠ ã—ã¾ã™ã€‚
変更後ã®ãƒªã‚¹ãƒˆã‚’表示:
System.out.println(fruits);
変更後ã®ãƒªã‚¹ãƒˆã‚’表示ã—ã¾ã™ã€‚
ã“ã®ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ã¨ã€ãƒªã‚¹ãƒˆã®å„è¦ç´ ㌠“Updated” ã«å¤‰æ›´ã•れã€å¤‰æ›´å¾Œã®ãƒªã‚¹ãƒˆãŒè¡¨ç¤ºã•れã¾ã™ã€‚ãªãŠã€ã“ã®æ–¹æ³•ã¯ã‚ãã¾ã§ä¸€ä¾‹ã§ã‚りã€è¦ä»¶ã«å¿œã˜ã¦ä»–ã®æ–¹æ³•も考ãˆã‚‰ã‚Œã¾ã™ã€‚
イテレーターを利用ã—ãŸè¦ç´ ã®å¤‰æ›´
- イテレーターã®å–å¾—: イテレーターã¯ã€ãƒªã‚¹ãƒˆå†…ã®è¦ç´ ã«é †ç•ªã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã®é“å…·ã§ã™ã€‚ã¾ãšã€ãƒªã‚¹ãƒˆã‹ã‚‰ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ¼ã‚’å–å¾—ã—ã¾ã™ã€‚
- イテレーターã®ä½¿ç”¨: イテレーターを使用ã—ã¦ã€ãƒªã‚¹ãƒˆå†…ã®å„è¦ç´ ã«é †ç•ªã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¾ã™ã€‚ã“れã«ã¯
hasNextメソッドを使用ã—ã¦ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ¼ãŒæ¬¡ã®è¦ç´ ã‚’æŒã£ã¦ã„ã‚‹ã‹ç¢ºèªã—ã€nextメソッドを使ã£ã¦æ¬¡ã®è¦ç´ ã«ç§»å‹•ã—ã¾ã™ã€‚ - è¦ç´ ã®å¤‰æ›´: イテレーターを使用ã—ã¦ã„る最ä¸ã«ã€
removeメソッドを呼ã³å‡ºã™ã“ã¨ã§ç¾åœ¨ã®è¦ç´ をリストã‹ã‚‰å‰Šé™¤ã§ãã¾ã™ã€‚ãã—ã¦ã€addメソッドを使用ã—ã¦æ–°ã—ã„è¦ç´ をイテレーターã®ç¾åœ¨ã®ä½ç½®ã«è¿½åŠ ã—ã¾ã™ã€‚ - 変更ã®çµæžœ: イテレーターを通ã—ã¦è¦ç´ を変更ã™ã‚‹ã“ã¨ã§ã€ãƒªã‚¹ãƒˆãŒåŒæ™‚変更ã®ä¾‹å¤–ã‹ã‚‰ä¿è·ã•れã¤ã¤ã€åŠ¹çŽ‡çš„ã«å¤‰æ›´ãŒè¡Œã‚れã¾ã™ã€‚ã“れã¯é€šå¸¸ã€æ¡ä»¶ã«åŸºã¥ã„ãŸè¦ç´ ã®å¤‰æ›´ã‚„削除ãŒå¿…è¦ãªå ´åˆã«ä¾¿åˆ©ã§ã™ã€‚
ã“ã®ä¸€èˆ¬çš„ãªèª¬æ˜Žã‚’å…ƒã«ã€å…·ä½“çš„ãªæ“作ãŒè¡Œã‚れã¦ã„るコード例をç†è§£ã™ã‚‹ã“ã¨ã§ã€ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ¼ã®åˆ©ç”¨ã¨è¦ç´ ã®å¤‰æ›´ãŒã‚ˆã‚Šæ˜Žç¢ºã«ç†è§£ã§ãã‚‹ã§ã—ょã†ã€‚
注æ„点:
- イテレーターã®
removeメソッドを使用ã™ã‚‹ã¨ã€ãƒªã‚¹ãƒˆã‹ã‚‰è¦ç´ ãŒå‰Šé™¤ã•れã¾ã™ã€‚ãã—ã¦ã€ãã®ä½ç½®ã«æ–°ã—ã„è¦ç´ を挿入ã™ã‚‹ã“ã¨ã§å¤‰æ›´ãŒè¡Œã‚れã¾ã™ã€‚ - イテレーターを使用ã™ã‚‹å ´åˆã€é€šå¸¸ã¯
while (iterator.hasNext())ループを使用ã—ã¦ã™ã¹ã¦ã®è¦ç´ ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¾ã™ã€‚ - イテレーターを使ã£ã¦ãƒªã‚¹ãƒˆã®è¦ç´ を変更ã™ã‚‹ã“ã¨ã§ã€åŒæ™‚変更ã®å•題を回é¿ã—ãªãŒã‚‰è¦ç´ ã®å¤‰æ›´ãŒè¡Œãˆã¾ã™ã€‚
イテレーターを使用ã—ã¦ãƒªã‚¹ãƒˆã®è¦ç´ を変更ã™ã‚‹ã“ã¨ã¯ã€ãƒªã‚¹ãƒˆã®å®‰å…¨ã§åŠ¹çŽ‡çš„ãªæ“作を実ç¾ã™ã‚‹é‡è¦ãªæ‰‹æ³•ã®ä¸€ã¤ã§ã™ã€‚åŒæ™‚変更ã®å•題を回é¿ã—ãªãŒã‚‰ã€è¦ç´ ã®å‰Šé™¤ã¨è¿½åŠ ãŒå®¹æ˜“ã«è¡Œãˆã€æŸ”軟性ã¨åŠ¹çŽ‡æ€§ãŒå‘上ã—ã¾ã™ã€‚
è¦ç´ ã®å¤‰æ›´ãŒå¿…è¦ãªå ´åˆã€ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ¼ã‚’介ã—ã¦ãƒªã‚¹ãƒˆã‚’æ“作ã™ã‚‹ã“ã¨ã§ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®å“è³ªã‚’ç¶æŒã—ãªãŒã‚‰æ“作を行ã†ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€å¯èªæ€§ãŒå‘上ã—ã€ã‚³ãƒ¼ãƒ‰ã®ä¿å®ˆæ€§ãŒé«˜ã¾ã‚Šã¾ã™ã€‚
イテレーターã®åˆ©ç”¨ã¯ã€ãƒªã‚¹ãƒˆã®å†…容を動的ã«å¤‰æ›´ã™ã‚‹ãƒ‹ãƒ¼ã‚ºã«å¿œãˆã‚‹ä¸Šã§å„ªã‚ŒãŸæ‰‹æ®µã§ã‚りã€ãƒ‡ãƒ¼ã‚¿ã®æ“作ã«ãŠã„ã¦æ¬ ã‹ã›ãªã„å˜åœ¨ã¨ãªã£ã¦ã„ã¾ã™ã€‚
「020 コレクションフレームワークã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント