Java Collection Framework ã«ã¯ãããŒã¿æ§é ãæäœããããã«ããããå®è£
ããéåžžã«äŸ¿å©ãªã€ã³ã¿ãŒãã§ã€ã¹ãšã¯ã©ã¹ãå«ãŸããŠããŸããããã¯ãJDK ãã¬ãŒã ã¯ãŒã¯ã®äžã§æãéèŠãªãã®ã® 1 ã€ã§ãããšèšããŸããList ã€ã³ã¿ãŒãã§ã€ã¹ã¯éåžžã«äººæ°ããããŸãããªããªããããã°ã©ãã³ã°ã«ãããŠããããçš®é¡ã®ãªã¹ããäžå¯æ¬ ã ããã§ãããã®èšäºã§ã¯ããã®ã€ã³ã¿ãŒãã§ã€ã¹ãJava List ã¡ãœããããã³å®è£
ã«ã€ããŠèª¬æããŸãã
Java ãªã¹ã ã€ã³ã¿ãŒãã§ã€ã¹
ãªã¹ãã«ã€ããŠæãéèŠãªããšã¯ããªã¹ããé åºä»ããããã³ã¬ã¯ã·ã§ã³ã§ãããšããããšã§ããã·ãŒã±ã³ã¹ãšåŒã¶ããšãã§ããŸããJava ã§ã¯ããªã¹ãã¯åçš®ã§ããã€ãŸãããªã¹ãã®èŠçŽ ã¯åãããŒã¿åã§ããJava List ã€ã³ã¿ãŒãã§ã€ã¹ã¯ Collection ãç¶æ¿ãããã®ãã¹ãŠã®æäœãç¶æ¿ããŸãããããã«å ããŠãList ã§ã¯æ¬¡ã®æäœãå¯èœã§ãã- äœçœ®ã¢ã¯ã»ã¹ãåèŠçŽ ã«ã¯ã€ã³ããã¯ã¹ãããããã®äœçœ®ã«åºã¥ããŠæäœã§ããŸãããªã¹ãã«ãããŸããã€ãŸããèŠçŽ ã远å ãé€å€ãããã³å€æŽã§ããŸãã
- æ€çŽ¢ãå 容ã«ãã£ãŠãªã¹ãå ã®èŠçŽ ãæ€çŽ¢ãããã®ã€ã³ããã¯ã¹ãè¿ãããšãã§ããŸãã
- å埩ãList ã®é次çãªæ§è³ªã«ãããå埩ã¡ãœãã (listIterator) ã®äœ¿çšãå¯èœã«ãªããŸãã
- ã¬ã³ãžãã¥ãŒãsublist ã¡ãœããã¯ããªã¹ãã«å¯ŸããŠä»»æã®ç¯å²æäœãå®è¡ããŸãã
Java ãªã¹ã ã¡ãœãã
äžèšã®æäœã¯ãJava List ã€ã³ã¿ãŒãã§ã€ã¹ã®ã¡ãœããã§å ¬éãããŸãã以äžã«ãã®äžéšã瀺ããŸããæ¹æ³ | 説æ |
---|---|
add(EèŠçŽ ) | ãã®ã¡ãœããã¯ããã®ãªã¹ãã®æ«å°Ÿã«elementèŠçŽ ã远å ããŸãã |
add(int ã€ã³ããã¯ã¹, èŠçŽ ) | ãã®ã¡ãœããã¯ããªã¹ãå ã®ç¹å®ã®ã€ã³ããã¯ã¹ã«èŠçŽ ã远å ããŸããå¿ èŠãªãã©ã¡ãŒã¿ãæž¡ããããšããªã¹ãã®æåŸã«èŠçŽ ã远å ãããŸãã |
addAll(int ã€ã³ããã¯ã¹, Collection ã³ã¬ã¯ã·ã§ã³) | æå®ãããã³ã¬ã¯ã·ã§ã³å ã®ãã¹ãŠã®èŠçŽ ããªã¹ãã«è¿œå ããŸããåäžã®ãã©ã¡ãŒã¿ãŒãæž¡ããããšãæå®ãããã³ã¬ã¯ã·ã§ã³ã®ãã¹ãŠã®èŠçŽ ããªã¹ãã®æåŸã«è¿œå ãããŸãã |
ãµã€ãºïŒïŒ | ãªã¹ãã®ãµã€ãº (ãªã¹ãå ã®èŠçŽ ã®é) ãè¿ããŸãã |
get(int ã€ã³ããã¯ã¹) | æå®ãããã€ã³ããã¯ã¹ã«ããèŠçŽ ãè¿ããŸãã |
set(int ã€ã³ããã¯ã¹, èŠçŽ ) | æå®ãããã€ã³ããã¯ã¹ã®èŠçŽ ãæ°ããèŠçŽ ã«çœ®ãæããæ°ããèŠçŽ ã«çœ®ãæããããèŠçŽ ãè¿ããŸãã |
åé€(int ã€ã³ããã¯ã¹) | æå®ãããã€ã³ããã¯ã¹ããèŠçŽ ãåé€ããŸãã |
åé€(èŠçŽ ) | ãªã¹ãå ã®æå®ãããèŠçŽ ã®æåã®åºçŸãåé€ããŸãã |
ã¯ãªã¢ïŒïŒ | ãªã¹ããããã¹ãŠã®èŠçŽ ãåé€ããŸãã |
IndexOf(èŠçŽ ) | æå®ãããèŠçŽ ã®æåã®åºçŸãè¿ããŸããèŠçŽ ããªã¹ãã«ååšããªãå Žåã¯ã-1ãè¿ããŸãã |
lastIndexOf(èŠçŽ ) | æå®ãããèŠçŽ ã®æåŸã®åºçŸãè¿ããŸããèŠçŽ ããªã¹ãã«ååšããªãå Žåã¯ã-1ãè¿ããŸãã |
çãã(èŠçŽ ) | æå®ãããèŠçŽ ãšãªã¹ãã®èŠçŽ ãçãããã©ãããæ¯èŒããŸãã |
ããã·ã¥ã³ãŒãïŒïŒ | æå®ããããªã¹ãã®ããã·ã¥ã³ãŒãå€ãè¿ããŸãã |
isEmpty() | ãªã¹ãã空ãã©ããã確èªããŸãããªã¹ãã空ã®å Žå㯠true ãè¿ããŸãã |
å«ã(èŠçŽ ) | ãªã¹ãã«èŠçŽ ãå«ãŸããŠãããã©ããã確èªããŸãããªã¹ãã«èŠçŽ ãå«ãŸããŠããå Žå㯠true ãè¿ããŸãã |
containsAll(ã³ã¬ã¯ã·ã§ã³ã³ã¬ã¯ã·ã§ã³) | ãªã¹ãã«èŠçŽ ã®ãã¹ãŠã®ã³ã¬ã¯ã·ã§ã³ãå«ãŸããŠãããã©ããã確èªããŸãã |
ãœãŒã(ã³ã³ãã¬ãŒã¿æ¯èŒ) | æå®ãããã³ã³ãã¬ãŒã¿ã«åºã¥ããŠãªã¹ãã®èŠçŽ ãäžŠã¹æ¿ããŸãã |
subList(int fromIndex, int toIndex) | ãã®ãªã¹ãã®ãæå®ããã fromIndex (䞡端ãå«ã) ãš toIndex (䞡端ãé€ã) ã®éã®éšåã®ãã¥ãŒãè¿ããŸãã |
ãªã¹ãã®å®è£
List ã¯ã€ã³ã¿ãŒãã§ã€ã¹ã§ãããããããã°ã©ã ã¯ãã®å ·äœçãªå®è£ ãäœæããå¿ èŠããããŸããJava Collections API ã§ã¯ã次㮠List å®è£ ããéžæã§ããŸãã- java.util.ArrayList
- java.util.LinkedList
- java.util.Vector
- java.util.ã¹ã¿ãã¯
ãªã¹ãã€ã³ã¿ãŒãã§ã€ã¹å®£èš
次ã®ããããã®æ¹æ³ã§ Java ããã°ã©ã ã§ãªã¹ãã宣èšã§ããŸãã
List<String> myList = new ArrayList();
List myList1 = new ArrayList();
List myList3 = new ArrayList<String>();
ArrayList arrayList = new ArrayList();
ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠæ°ãããªã¹ãã宣èšããã®ãæåã§ããåæ§ã«ãList ã®ä»ã®å®è£
ã宣èšã§ããŸããæçã®æ¹æ³:
Vector myVector = new Vector;
LinkedList linkedList = new LinkedList();
Stack stack = new Stack();
ãã®ãããªå®£èšã䜿çšãããšããªã¹ãã®èŠçŽ ã®ããŒã¿åã¯ãªã¹ãã®åæåäžãã€ãŸããªã¹ãã«èŠçŽ ã远å ããããšãã«æ±ºå®ãããŸãã
List myList = new ArrayList<String>();
Vector myVector = new Vector();
LinkedList linkedList = new LinkedList();
Stack stack = new Stack();
stack.add("Paul");
linkedList.add(1);
myVector.add(1.2f);
myList.add('a');
çŸåšãã¹ã¿ãã¯ã«ã¯æååã®ã¿ã远å ã§ããæŽæ°ã¯linkedListã«ãæµ®åå°æ°ç¹ã¯myVectorã«è¿œå ã§ããŸããmyListã¯æåã®ãªã¹ãã§ãã
ArrayList ã®ä»çµã¿
éåžžã®é åã«ãã§ã«æ £ããŠããå Žåã¯ãArrayList ã«ãããçšåºŠæ £ããŠããã¯ãã§ããå®éãArrayList ã¯åçé åã§ããããã®å éšã«ã¯éåžžã®é åããããŸãããã®é åã¯ããŒã¿ ã¹ãã¢ãšããŠæ©èœããŸããArrayList ã«ã¯ãåç §åããµãŒãããŒãã£ã®ã¯ã©ã¹ãæååãåºåã¹ããªãŒã ããã®ä»ã®ã³ã¬ã¯ã·ã§ã³ãå«ããªããžã§ã¯ãã®ã¿ãæ ŒçŽãããŸããã©ãã㌠ã¯ã©ã¹ã¯ãArrayList ã«ããªããã£ã ããŒã¿åãæ ŒçŽããããã«äœ¿çšãããŸãããªã¹ããäœæãããšãã«ããã®ãµã€ãºãããã«èšå®ã§ããŸãããã»ãšãã©ã®å Žåã¯èšå®ããŸãããããã©ã«ãã§ã¯ãArrayList ãµã€ãº = 10 ã§ããArrayList ã«æ°ããèŠçŽ ã远å ãããšã©ããªãã§ãããã? ãŸããå éšé åã«ååãªã¹ããŒã¹ããããã©ãããããã³ãã 1 ã€ã®èŠçŽ ãé©åãããã©ããã確èªããããã®ãã§ãã¯ãéå§ãããŸããã¹ããŒã¹ãããå Žåãæ°ããèŠçŽ ã¯ãªã¹ãã®æåŸãã€ãŸãæåŸã®èŠçŽ ã®æ¬¡ã®ã»ã«ã«è¿œå ãããŸãããã®ã€ã³ããã¯ã¹ã¯ arraylist.size() ã«ãªããŸããäœæããã°ããã®ãªã¹ãã空ã®å Žåããã㯠arrayList.size() = 0 ãæå³ããŸãããããã£ãŠãã€ã³ããã¯ã¹ 0 ã®ã»ã«ã«æ°ããèŠçŽ ã远å ãããŸããååãªã¹ããŒã¹ããªãããšã倿ããå Žåã¯ãæ°ããèŠçŽ ã远å ãããŸããé åã¯ã(OldArray ã®ãµã€ãº * 1.5) + 1 ã®ãµã€ãºã§ ArrayList å ã«äœæãããŸããåãåçã«ããããªã¹ãã®éäžã§æ¿å ¥ãè¡ãããŸãããåæã«ãæ¿å ¥ãããèŠçŽ ã«ç¶ããã¹ãŠã®èŠçŽ ãäœæãããŸããå³ã«ç§»åããŸããããããã£ãŠãé åã« 5 ã€ã®èŠçŽ ããããã»ã«çªå· 2 (ã€ãŸã 3 çªç®) ã«èŠçŽ ãæ¿å ¥ããå¿ èŠãããå Žåã0 ãš 1 ã®é åèŠçŽ ã¯ãã®ãŸãŸæ®ããæ°ããèŠçŽ ãã»ã« 2 ã«è¡šç€ºãããŸãããã®åã®ã»ã«ã¯ 3 çªç®ã®ã»ã«ã«ç§»åãã以äžåæ§ã«ç¶ããŸããæ°ããèŠçŽ ã¯ã€ã³ããã¯ã¹ 0 ã®ã»ã«ã«è¿œå ãããŸããååãªã¹ããŒã¹ããªãããšã倿ããå Žåã¯ãArrayList å ã«ãµã€ãº (OldArray ã®ãµã€ãº * 1.5) + 1 ã®æ°ããé åãäœæãããŸããååãšããŠãæ¿å ¥ã¯ãªã¹ãã®äžå€®ã«è¡ãããŸãããåæã«ãæ¿å ¥ãããèŠçŽ ã«ç¶ããã¹ãŠã®èŠçŽ ã¯å³ã«ã·ãããããŸãããããã£ãŠãé åã« 5 ã€ã®èŠçŽ ããããã»ã«çªå· 2 (ã€ãŸã 3 çªç®) ã«èŠçŽ ãæ¿å ¥ããå¿ èŠãããå Žåã0 ãš 1 ã®é åèŠçŽ ã¯ãã®ãŸãŸæ®ããæ°ããèŠçŽ ãã»ã« 2 ã«è¡šç€ºãããŸãããã®åã®ã»ã«ã¯ 3 çªç®ã®ã»ã«ã«ç§»åãã以äžåæ§ã«ç¶ããŸããæ°ããèŠçŽ ã¯ã€ã³ããã¯ã¹ 0 ã®ã»ã«ã«è¿œå ãããŸããååãªã¹ããŒã¹ããªãããšã倿ããå Žåã¯ãArrayList å ã«ãµã€ãº (OldArray ã®ãµã€ãº * 1.5) + 1 ã®æ°ããé åãäœæãããŸããååãšããŠãæ¿å ¥ã¯ãªã¹ãã®äžå€®ã«è¡ãããŸãããåæã«ãæ¿å ¥ãããèŠçŽ ã«ç¶ããã¹ãŠã®èŠçŽ ã¯å³ã«ã·ãããããŸãããããã£ãŠãé åã« 5 ã€ã®èŠçŽ ããããã»ã«çªå· 2 (ã€ãŸã 3 çªç®) ã«èŠçŽ ãæ¿å ¥ããå¿ èŠãããå Žåã0 ãš 1 ã®é åèŠçŽ ã¯ãã®ãŸãŸæ®ããæ°ããèŠçŽ ãã»ã« 2 ã«è¡šç€ºãããŸãããã®åã®ã»ã«ã¯ 3 çªç®ã®ã»ã«ã«ç§»åãã以äžåæ§ã«ç¶ããŸããæ¿å ¥ã¯ãªã¹ãã®äžå€®ã«è¡ãããŸãããåæã«ãæ¿å ¥ãããèŠçŽ ã«ç¶ããã¹ãŠã®èŠçŽ ãå³ã«ã·ãããããŸãããããã£ãŠãé åã« 5 ã€ã®èŠçŽ ããããã»ã«çªå· 2 (ã€ãŸã 3 çªç®) ã«èŠçŽ ãæ¿å ¥ããå¿ èŠãããå Žåã0 ãš 1 ã®é åèŠçŽ ã¯ãã®ãŸãŸæ®ããæ°ããèŠçŽ ãã»ã« 2 ã«è¡šç€ºãããŸãããã®åã®ã»ã«ã¯ 3 çªç®ã®ã»ã«ã«ç§»åãã以äžåæ§ã«ç¶ããŸããæ¿å ¥ã¯ãªã¹ãã®äžå€®ã«è¡ãããŸãããåæã«ãæ¿å ¥ãããèŠçŽ ã«ç¶ããã¹ãŠã®èŠçŽ ãå³ã«ã·ãããããŸãããããã£ãŠãé åã« 5 ã€ã®èŠçŽ ããããã»ã«çªå· 2 (ã€ãŸã 3 çªç®) ã«èŠçŽ ãæ¿å ¥ããå¿ èŠãããå Žåã0 ãš 1 ã®é åèŠçŽ ã¯ãã®ãŸãŸæ®ããæ°ããèŠçŽ ãã»ã« 2 ã«è¡šç€ºãããŸãããã®åã®ã»ã«ã¯ 3 çªç®ã®ã»ã«ã«ç§»åãã以äžåæ§ã«ç¶ããŸããJava ãªã¹ãã®äŸ (é åãªã¹ãã®å®çŸ)
import java.util.*;
public class ArrayListExample2 {
public static void main(String[] args) {
List<String> myFriendsList = new ArrayList();
//we created list of some objects
System.out.println( "the size of myList before init = " + myFriendsList.size());
myFriendsList.add("Alex");
myFriendsList.add("Tanya");
myFriendsList.add("Veloxy");
myFriendsList.add("Alex");
myFriendsList.add("Andrew");
System.out.println(myFriendsList);
System.out.println( "the size of myList after init = " + myFriendsList.size());
myFriendsList.add("Ihor");
System.out.println(myFriendsList);
System.out.println("the size of my list = " + myFriendsList.size());
//here the program will print out the first appearance of "Alex" element
System.out.println(myFriendsList.indexOf("Alex"));
//program will print out the first appearance of "Alex" element starting from the element 0
myFriendsList.remove(3);
System.out.println(myFriendsList.get(3));
System.out.println("after removing one of Alex's there is only one Alex: " + myFriendsList);
System.out.println(myFriendsList.get(1));
myFriendsList.clear();
System.out.println("the size of the vector after clear method = " + myFriendsList.size());
}
}
ãã®ããã°ã©ã ã®åºåã¯æ¬¡ã®ãšããã§ãã
åæååã® myList ã®ãµã€ãº = 0 [AlexãTanyaãVeloxyãAlexãAndrew] åæååŸã® myList ã®ãµã€ãº = 5 [AlexãTanyaãVeloxyãAlexãAndrewãIhor] ãªã¹ãã®ãµã€ãº = 6 0 Andrew åæååŸã®Alex ã® 1 ã€ãåé€ãããšãAlex 㯠1 ã€ã ãã«ãªããŸã: [Alex, Tanya, Veloxy, Andrew, Ihor] Tanya ã¯ãªã¢åŸã®ãã¯ãã«ã®ãµã€ãº = 0 ããã»ã¹ã¯çµäºã³ãŒã 0 ã§çµäºããŸãã
LinkedList ã®ä»çµã¿
LinkedList ã§ã¯ãèŠçŽ ã¯å®éã«ã¯åããã§ãŒã³å ã®ãªã³ã¯ã§ããåèŠçŽ ã«ã¯ãä¿åãããããŒã¿ã«å ããŠãååŸã®èŠçŽ ãžã®ãªã³ã¯ããããŸãããããã®ãªã³ã¯ã䜿çšãããšãããèŠçŽ ããå¥ã®èŠçŽ ã«ç§»åã§ããŸããã€ãã¬ãŒã¿ã¯äž¡æ¹åã®ãã©ããŒã¹ããµããŒãããŸãããªã¹ãã®å é ãäžéãããã³æ«å°Ÿã§ååŸãåé€ãããã³æ¿å ¥ããããã®ã¡ãœãããå®è£ ããŸããnull ãå«ãä»»æã®èŠçŽ ã远å ã§ããŸããLinkedList ã¯ãList ã ãã§ãªã Deque ãšãã 2 ã€ã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŸããããã«ãããä»»æã®èŠçŽ (null ãå«ã) ããåæ¹åãã¥ãŒãäœæã§ããããã«ãªããŸãããªã³ã¯ãªã¹ãã«é 眮ãããåãªããžã§ã¯ããããŒãïŒããŒãïŒã§ããåããŒãã«ã¯èŠçŽ ãã€ãŸãååŸã®ããŒããžã®ãªã³ã¯ãå«ãŸããŠããŸããå®éããªã³ã¯ ãªã¹ãã¯äžé£ã®ããŒãã§æ§æãããŠãããåããŒãã¯ãäœææã«å®çŸ©ãããã¿ã€ãã®ãªããžã§ã¯ããæ ŒçŽããããã«èšèšãããŠããŸããã³ãŒãäŸ
import java.util.*;
public class LinkedListTest {
public static void main(String args[]){
List myLinkedList= new LinkedList<Integer>();
myLinkedList.add(1);
myLinkedList.add(2);
myLinkedList.add(4);
System.out.println("three added elements: " + myLinkedList);
myLinkedList.add(5);
myLinkedList.remove(1);
System.out.println(myLinkedList);
myLinkedList.size(); //3
//add new element at the specified position:
myLinkedList.add(2,7);
System.out.println(myLinkedList);
}
}
åºåã¯æ¬¡ã®ãšããã§ãã
3 ã€ã®è¿œå èŠçŽ : [1, 2, 4] [1, 4, 5] [1, 4, 7, 5]
ãã¯ãã«ã³ãŒãã®äŸ
Vector ãåçé åã®å®çŸã§ãããArrayList ã«éåžžã«äŒŒãŠããŸãããåæãããŠãããã³ã¬ã¯ã·ã§ã³ ãã¬ãŒã ã¯ãŒã¯ã«å«ãŸããŠããªãã¬ã¬ã·ãŒ ã¡ãœãããããã€ããããŸãããã®ã¯ã©ã¹ã®äœ¿çšæ³ã®ç°¡åãªäŸã次ã«ç€ºããŸãã
import java.util.Vector;
public class VectorExample1 {
public static void main(String[] args) {
Vector vector = new Vector();
System.out.println("the size of the empty vector = " + vector.size());
vector.add("Alex");
vector.add("Tanya");
vector.add("Andrew");
System.out.println(vector);
vector.add("Alex");
vector.add("Ihor");
System.out.println(vector);
System.out.println("the size of the vector = " + vector.size());
System.out.println("the first element of the vector = " + vector.firstElement());
//here the program will print out the first appearance of "Johnny" element
System.out.println(vector.indexOf("Andrew"));
//program will print out the first appearance of "Johnny" element starting from the element 1
System.out.println(vector.indexOf("Alex", 1));
System.out.println(vector);
vector.clear();
System.out.println("the size of the vector after clear method = " + vector.size());
}
}
åºåã¯æ¬¡ã®ãšããã§ãã
空ã®ãã¯ãã«ã®ãµã€ãº = 0 [Alex, Tanya, Andrew] [Alex, Tanya, Andrew, Alex, Ihor] ãã¯ãã«ã®ãµã€ãº = 5 ãã¯ãã«ã®æåã®èŠçŽ = Alex 2 3 [Alex, Tanya, Andrew, AlexãIhor] ã¡ãœããã¯ãªã¢åŸã®ãã¯ãã«ã®ãµã€ãº = 0 ããã»ã¹ã¯çµäºã³ãŒã 0 ã§çµäºããŸãã
Javaã¹ã¿ãã¯ã¯ã©ã¹ã³ãŒãã®äŸ
import java.util.Stack;
public class StackTest {
public static void main(String[] args) {
Stack stack = new Stack();
System.out.println(stack.isEmpty());
stack.add("Paul");
stack.add("Johnny");
stack.add("Alex");
System.out.println(stack.isEmpty());
stack.push("Andrew");
System.out.println(stack);
stack.pop();
System.out.println(stack);
}
}
Stack ã«ã¯add()ã¡ãœãããšremove()ã¡ãœãã ã ãã§ãªããpush ã¡ãœãããš Pop ã¡ãœãããããããã®ãããªããŒã¿æ§é ã§ã¯å€å
žçã§ããã¹ã¿ãã¯ã¯ãå
å
¥ãåŸåºããã®ã«ãŒã«ã«åŸããŸããããã¯éåžžã«ã¢ã³ããã¥ãŒã§ãããããã£ãŠãpop æäœã¯ã¹ã¿ãã¯ã«æåŸã«é
眮ãããèŠçŽ ããããããŸãããã®äŸã®åºåã¯æ¬¡ã®ãšããã§ãã
true false [ããŒã«ããžã§ããŒãã¢ã¬ãã¯ã¹ãã¢ã³ããªã¥ãŒ] [ããŒã«ããžã§ããŒãã¢ã¬ãã¯ã¹]
GO TO FULL VERSION