ArrayList을 쓰면서 이를 이용해서 이차원 배열도 만들 수 있지 않을까 라는 생각이 들었다. 그래서 ArrayList는 제네릭이므로 T를 다시 ArrayList로 할 수 있지 않을까해서 구글링을 기반으로 직접 해보았다. 그래서 시도했더니 성공했다. 그림으로 생각해보면 list 라는 인스턴스 상자 안에 alist, alist2 인스턴스 상자가 들어 있고, alist alist2 각각에는 ArrayList형 배열들이 존재한다고 생각하고, 이 값들을 반환하기 위해서는 처음 list라는 상자에서 alist alist2 상자를 get해야하고, 그 다음에 alist 와 alist2 상자 안을 get해야한다고 순차적으로 생각했다.
StringTokenizer 긴 문자열을 지정된 구분자를 기준으로 문자열을 나열 -> 여러 구분자를 사용할 수 있다. 생성자 StringTokenizer(String str, String delim) : 특정 delim(구분자)로 문자열 분리 StringTokenizer(String str, String delim, boolean return Delims) : str을 delim 기준으로 분리시키는데, 그 delim까지 token으로 포함할지 포함하면 true 입력, false일 때는 포함하지 않는다. delim default값은 공백 문자들(\t \n \r \ t)이다. booelan return delims default값은 false인 것 같다. 입력하지 않으면 자동으로 구분자를 포함시키지 않음. ..
ArrayList 로 생성한 인스턴스는 1차원 배열이라고 생각하게 된다. 그렇다면 ArrayList로 2차원 배열은 어떻게 생성이 되는지 궁금하게 됐다. 그래서 제네릭 T 안에 ArrayList 를 또 집어넣는 것이다. 코드로 보면 어렵지만 머릿 속으로 그림을 생각하면서 이해하면 쉽다. aList라는 ArrayList 형 상자 안에, a1이라는 ArrayList형 상자, a2라는 ArrayList형 상자가 있다고 생각하자. 그리고 a1 상자안에는상자 안에는 1,2가 저장되어있고, a2 상자 안에는 3이 저장되어있다. 그래서 1 2 를 꺼내는 방법은 바깥에서부터 순차적으로 aList.get() 한 뒤, 또 get()메소드를 사용해 출력하면 된다.