#자바컬렉션 #리스트 #ArrayList

 

// Vetctor (동기화 보장), ArrayList(동기화 보장 X)

import java.util.ArrayList;

public class Ex01ArrayList {

 public static void main(String[] args) {
  
  // ArrayList<E> => <E> = Generic(일반화), 타입을 결정하지 않는다.
  // ex) ArrayList<String> => 오직 String 타입만 받는다. 잘못된 데이터가 들어오는 것을 방지한다.
  
  // ArrayList list = new ArrayList(); // 오직 객체(레퍼런스) 타입만 받는다.
  // 자바 1.5 버전 이후부터 <E>(GENERIC) 사용 가능
  ArrayList<String> list = new ArrayList<String>(); // 오직 String 타입만 받는다.
  
  list.add("가");
  list.add("나");
  list.add(new String("다"));
  list.add(new String("라"));
  
  // list.add(new Integer(50));
  
  System.out.println(list); // 순서의 개념이 존재.
  
  list.add("나");
  System.out.println(list); // 데이터의 중복이 가능하다.
  
  if(list.contains("다")) { // 존재 여부
   // System.out.println("존재합니다.");
  }else {
   // System.out.println("존재하지 않습니다.");
  }
  
  
  if(list != null && !list.isEmpty()) { // list가 null이 아니고 list가 비어있지 않아야함.
   int size = list.size(); // 메서드를 직접 호출하는 것보다 변수로 설정하여 호출하는 것이 좋다.
   for(int i =0; i<size; i++) { // 데이터 순차 접근
    //  String name = (String)list.get(i);
    String name = list.get(i); // 형 변환을 하지 않아도 된다.
    System.out.println(name);
    
   }
  }
  System.out.println("====================");
   // Advanced For, forEach
   // 순차 출력의 경우 장점 크다.
   // 자바 1.5 버전 이후부터 <E>(GENERIC) 사용 가능
   for(String name : list) { // list에 담겨있는 값을 하나씩 꺼내 String name에 담는다. 
    System.out.println(name);
   }
  
 }
}

 

+ Recent posts