ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 알기 쉬운 JAVA ArrayList에 대해 알아보자
    프로그래밍/JAVA 2020. 5. 14. 18:10

    ArrayList

     

    ArrayList의 특징

    1) java.util.List 인터페이스를 구현한 컬렉션이다.

    2) Vector와 기능이 동일하다.

    2) 객체의 삽입, 삭제, 이동이 쉽다.

    3) 데이터를 저장한 순서를 기억한다. (순서대로 저장)

    4) 데이터 중복 저장을 허용한다.

    5) 다양한 타입의 데이터들을 저장할 수 있다.

    6) 기본형 데이터는 저장할 수 없다.

     

    ArrayList 생성 방법

    Vetor와 마찬가지로 여러 데이터 타입을 저장할 수 있지만, 대체적으로 같은 자료 유형을 담기 위해 사용한다. 이 때 제네릭 <E>를 사용한다. 

     

    같은 문자열의 값만 삽입 가능한 ArrayList를 만들고자 하면 다음과 같이 E에 String을 지정하여 생성한다.

    List<String> arrList = new ArrayList<>();

    자료유형은 부모클래스를 자료유형으로 하는 것이 의존성에서 더 효과적이다.

    자료유형은 List로 지정해준다.

    하지만, 부모클래스인 List는 인터페이스여서 객체를 생성할 수 없다.

    따라서 객체 타입은 자식 객체인 ArrayList()로 지정해준다.

    데이터 삽입

    boolean add(E e) 제네렉 E타입의 e를 매개변수로 받는 add 메소드를 사용한다.

    void add(int index, E element) n번째 인덱스에 E타입의 요소를 넣을 수 있다.

    arrList.add() 메소드를 사용하여 arrayList에 담아준다.

    arrList.add("Apple");
    arrList.add("Melon");
    arrList.add("Kiwi");
    arrList.add("Banana");

    배열 처럼 순서대로 저장이 된다.

    데이터 출력

    E get(int index) E타입의 n번째 인덱스를 가져온다.

    arrList.get(0)을 담아줄 String변수 s1을 지정하고 담아준다.

    String s1 = arrList.get(0); // get한 값을 String 변수에 담아준다.
    String s2 = arrList.get(1);
    System.out.println(s1);		// 담아준 s1을 출력한다.
    System.out.println(s2);
    
    System.out.println(arrList.get(2)); // 바로 출력할 수 있다.
    System.out.println(arrList.get(3));
    Apple
    Melon
    Kiwi
    Banana

     

    객체 유형을 ArrayList에 담는 방법

    class Person {
    	
    	private String name;
    	private int age;
    	
    	
    	public Person(String name, int age) {
    		this.name = name; this.age = age;
    	}
    	// setter, getter 캡슐화
    	
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public String getName() {
    		return name;
    	}
    	
    	public void setAge(int age) {
    		this.age = age;
    	}
    	
    	public int getAge() {
    		return age;
    	}
    	
    	
    } //
    
    public class ArrayListTest2 {
    
    	public static void main(String[] args) {
    		// [1] Person 객체 3개 생성
    		Person p1 = new Person("홍길동", 30);
    		Person p2 = new Person("고길동", 40);
    		Person p3 = new Person("이길동", 20);
    		
    		// [2] Person 유형을 저장할 ArrayList를 생성 후 Person 객체 3개를 저장
    		List<Person> arr = new ArrayList<Person>();
    		arr.add(p1);
    		arr.add(p2);
    		arr.add(p3);
    		
    		// [3] for루프 이용해서 ArrayList에 저장된 Person을 꺼내 이름과나이를 출력
    		for(int i=0;i<arr.size();i++) {
    			System.out.println("이름:"+arr.get(i).getName());
    			System.out.println("나이:"+arr.get(i).getAge());
    			System.out.println("--------");
    		}
            
            } // main()
          
    } //   

    1. Person 객체를 생성한다. -> Person p1 = new Person();

    2. Person 객체를 담을 ArrayList<Person>을 생성한다.

    3. v.add() 메소드를 이용하여 Person 객체를 저장한다.

    4. for문을 이용해서 배열의 데이터를 출력하는 방법과 같이 ArrayList의 저장된 데이터를 출력한다.

    5. 이 때 for문의 조건을 v.size() 메소드를 이용한다.

    댓글

Designed by Tistory.