ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] HeadFirst 16장 : ArrayList
    JAVA 2012. 2. 26. 23:52

    16장은 대학때 배웠던 자료구조를 자바에서 어떻게 갔다 쓰는지 나옴

    다짜고짜 16장 첫번째 예제 돌려봄...
    그냥 ArrayList 써보는 거임..;;
    이번기회에 잊혀졌던 모든 자료구조를 갔다 써보자;;

    첫번째...ArrayList..

    Jukebox1.java
    package chap16.practice;

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.util.ArrayList;
    import java.util.Hashtable;

    public class Jukebox1 {

     ArrayList<String> songList = new ArrayList<String>();
     Hashtable<String, String> songListHash = new Hashtable<String, String>(); // 얘는 그냥 심심해서 써봄
     
     public static void main(String[] args) {
      new Jukebox1().go();
     }
     
     public void go() {
      getSongs();
      System.out.println(songList);
      System.out.println("");
      System.out.println(songListHash);
     }
     
     void getSongs() {
      try {
       File file = new File("SongList.txt");
       BufferedReader reader = new BufferedReader(new FileReader(file));
       String line = null;
       while((line = reader.readLine()) != null) {
        addSong(line);
       }
       
      } catch (Exception e) {e.printStackTrace();}
     }
     
     void addSong(String lineToParse) {
      String[] tokens = lineToParse.split("/");
      songList.add(tokens[0]); //노래제목만 갔다가 출력
      songListHash.put(tokens[0], tokens[1]); // 노래제목 + 가수 같이 출력
     }
    }

    SongList.txt
    Pink Moon/Nick Drake
    Somersault/Zero 7
    Shiva Moon/Prem Joshua
    Circles/BT
    Deep Channel/Afro Celts
    Passenger/Headmix
    Listen/Tahiti 80


    16장에 나오는 자료구조들은...

    ArrayList : 가장 단순함. 리스트형태로 정렬기능 없음
    TreeSet : 원소들을 정렬된 상태로 유지하며 원소가 중복되지 않게 해줌
    HashMap : 원소들을 이름/값 쌍으로 저장하고 접근할 수 있게 해줌
    LinkedList : 컬렉션 중간에서 원소를 추가하거나 삭제하는 작업을 더 빠르게 처리할 수 있게 해줌 (ArrayList 를 써도 상관없음)
    HashSet : 컬렉션에 중복된 원소가 들어가지 않도록 해주고, 컬렉션 내에서 어떤 원소를 빠르게 찾을 수 있게 해줌
    LinkedHashMap : 일반 HashMap과 거의 똑같지만 원소(이름/값 쌍)가 삽입된 순서를 그대로 유지시켜 줄 수도 있고, 원소에 마지막으로 접근했던 순서를 기억하도록 설정할 수 있음

Designed by Tistory.