Java

[Java] 자바 ArrayList 사용방법 및 예제

ArrayList는 자바에서 데이터 처리시 가장 많이 사용하는 클래스로 반드시 알고 있어야 개발할때 유용하다.

 

■ArrayList 선언 방법

package edu.sample;

import java.util.ArrayList;

public class arrayListExample {

	public static void main(String[] args) {
    
    	// Integer 타입으로 리스트 선언
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
        
        // 타입 파라미터 생략가능
		ArrayList<Integer> arrayList = new ArrayList<>();
	}
}

ArrayList 사용시 ArrayList에 타입을 명시해주는 방향으로 코딩하자. 배열과 다르게 ArrayList는 리스트의 사이즈를 명시할 필요가 없다. 데이터를 추가할때 자동으로 증가한다.

 

■ArrayList에 데이터 추가하기 : add()메소드를 사용

package edu.sample;

import java.util.ArrayList;

public class arrayListExample {

	public static void main(String[] args) {
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		 
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        arrayList.add(4);
        arrayList.add(5);
 
        for(int i : arrayList)
        {
            System.out.println("리스트 값 : " + i );
        }

	}
}

[출력결과]


 

■ArrayList에 인덱스를 지정하여 데이터 추가하기 : add()메소드를 사용

package edu.sample;

import java.util.ArrayList;

public class arrayListExample {

	public static void main(String[] args) {
		//ArrayList<Integer> arrayList = new ArrayList<>();
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		 
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        arrayList.add(4);
        arrayList.add(5);
        
        arrayList.add(2,1000); //인덱스 2에 1000 추가
 
        for(int i : arrayList)
        {
            System.out.println("리스트 값 : " + i );
        }

	}
}

[출력결과]


ArrayList의 add(index, value) 메소드를 사용하여 추가하는데, index를 생략하면 ArrayList 맨 뒤에 데이터가 추가 된다. index중간에 값을 추가하면 그 위치에 데이터가 추가되며, 그 다음 인덱스부터 마지막 인덱스까지 모두 1씩 뒤로 밀려난다.

 

■ArrayList에 데이터 추가하기 : addAll()메소드를 사용

package edu.sample;

import java.util.ArrayList;

public class arrayListExample {

	public static void main(String[] args) { 
        
        ArrayList<Integer> arrayList = new ArrayList<>();
        ArrayList<Integer> arrayList2 = new ArrayList<>();
 
 		//첫번째 리스트
        arrayList.add(1);
        arrayList.add(2); 
 
 		//두번째 리스트
        arrayList2.add(10);
        arrayList2.add(20);
 
 		//첫번째 리스트에 두번째리스트의 모든 데이터를 추가하기
        arrayList.addAll(arrayList2);
 
        
        for(int i : arrayList)
        {
            System.out.println("리스트 값 : " + i );
        }

	}
}

[출력결과]


 

■ArrayList 데이터 삭제하기 : remove()메소드 사용

package edu.sample;

import java.util.ArrayList;

public class arrayListExample {

	public static void main(String[] args) {
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		 
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        arrayList.add(4);
        arrayList.add(5);
        
        arrayList.add(2,1000); //인덱스 2에 1000 추가
 
 
        for(int i : arrayList)
        {
            System.out.println("리스트 값 : " + i );
        }
        
        System.out.println("nn리스트 값 제거 후n" );
        arrayList.remove(1);
        
        for(int i : arrayList)
        {
            System.out.println("리스트 값 : " + i );
        }

	}
}

arrayList.remove(1)의 의미는 1번째 인덱스 값을 삭제한다는 뜻이다. 아래 출력결과를 보면 쉽게 이해할 수 있다.

 

[출력결과]


■ArrayList의 모든 데이터를 삭제하는 방법clear()메소드를 호출하면된다.

arrayList.clear();

 

 

ArrayList 사이즈 구하기 : size()메소드 사용

package edu.sample;

import java.util.ArrayList;

public class arrayListExample {

	public static void main(String[] args) {
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		 
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        arrayList.add(4);
        arrayList.add(5);
        
        System.out.println("리스트 사이즈 : " + arrayList.size());
 
	}
}

[출력결과]


ArrayList 특정 값 가져오기: get()메소드 사용

package edu.sample;

import java.util.ArrayList;

public class arrayListExample {

	public static void main(String[] args) { 
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		 
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        arrayList.add(4);
        arrayList.add(5); 
         
        System.out.println("리스트 특정값 구하기 : " + arrayList.get(3)); 
	}
}

arrayList.get(3)은 세번째 인덱스에 위치한 값을 가져옴을 뜻한다. 인덱스는 0부터 시작됨으로, 4번째 추가한 값을 출력하게된다.

 

[출력결과]


 

ArrayList 특정 값 찾기 : indexOf()메소드와 lastIndexOf()메소드 사용한다.

ArrayList.indexOf()는 앞에서 순서 찾기, ArrayList.lastIndexOf()는 뒤에서 순서를 찾는다. 어느것을 사용하든 결과값(리턴값)은 동일하다. 찾는 값이 존재하지 않는 경우 -1를 리턴한다.

package edu.sample;

import java.util.ArrayList;

public class arrayListExample {

	public static void main(String[] args) { 
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		 
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        arrayList.add(4);
        arrayList.add(5);  
  
        System.out.println("indexOf(20) : " + arrayList.indexOf(20));
        
        System.out.println("indexOf(4) : " + arrayList.indexOf(4));
        
        System.out.println("lastIndexOf(4) : " + arrayList.lastIndexOf(4));
        
        System.out.println("indexOf(1) : " + arrayList.indexOf(1));        
 
	}
}

[출력결과]


■ArrayList 값 출력방법 : for문을 사용하거나 Iterator를 사용

package edu.sample;

import java.util.ArrayList;
import java.util.Iterator;

public class arrayListExample {

	public static void main(String[] args) {
		//ArrayList<Integer> arrayList = new ArrayList<>();
		ArrayList<Integer> arrayList = new ArrayList<Integer>();
		 
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        arrayList.add(4);
        arrayList.add(5);
        
        arrayList.add(2,1000); //인덱스 2에 1000 추가
 
 
        for(int i : arrayList)
        {
            System.out.println("리스트 값 : " + i );
        }        
        
        Iterator iterator = arrayList.iterator(); //Iterator 선언 
        while(iterator.hasNext()){//다음 값  체크 
            
            System.out.println("리스트 값 : " + iterator.next() );//값 출력
        }

	}
}

 

출력결과는 동일하다.


[연관 자료]

JDK8 ArrayList.java

Leave a Reply

error: Content is protected !!