자바 선행학습 5일차 (마지막) - ArrayList

728x90

ArrayList

한번 길이를 선언하면 변경이 불가능한 Array와는 달리 ArrayList는 주어진 데이터의 길이만큼 변경 가능

기본형식: ArrayList<타입클래스> 변수이름 = new ArrayList<>();

 

<E>는 제네릭 이라고 불리고 <> 안에는 항상 클래스 변수가 들어가야 함. 따라서 기본자료형은 String Integer 등으로 적음

 

ArrayList는 .add 함수로 미리 값을 받아온 후에 .get함수로 추출해내야 한다.

import java.util.ArrayList;

public class ArrayListTest {
	public static void main(String[] args) {
//		 배열(Array)은 한번 선언하면 프로그램에서 크기 변경 불가
		int[] data = new int [10];
		
		for(int i = 0; i < 10; i++) {
			data[i] = i+1;
			System.out.println(data[i]);
		}
//		ArrayList는 데이터를 넣는대로 커지고 데이터를 제거하면 제거하는 만큼 작아진다
		ArrayList<Integer> list = new ArrayList<>(); //jdk 1.7버전 이후
		ArrayList<Integer> list2= new ArrayList<Integer>(); //jdk 1.5 버전 이전
//		형식은 array와 동일함
		
//		<E> = 제네릭 이라고 부름, ArrayList에 저장될 데이터 타입을 입력.
//		단!!! 데이터의 타입은 반드시 Class로 적어야 함.
//		<int, double, float>등 은 오류. 따라서 기본자료형을 저장 시에 class화 시켜놓은 랩퍼클래스 사용
//		String, Integer, Double, Character 등
		
		for(int i = 0; i < 10; i++) {
//			add로 값을 얻어온 후에 get으로 출력
			list.add(i); 
			System.out.println(data[i] + "list.get(" + i + i+ "): "+ list.get(i));
//			System.out.println(list.get(i));
		}
	}
}

ArrayList의 주요 함수

.add .get .remove .clear

.remove()는 ()안에 int형 값을 대입하여 인덱스 값에 맞는 값을 지울 수 있고 or "hello"같은 값을 직접 입력해서 지울 수 있음

import java.util.ArrayList;

public class ArrayListTest2 {
	public static void main(String[] args) {
//		 배열(Array)은 한번 선언하면 프로그램에서 크기 변경 불가
		ArrayList<String> list = new ArrayList<>();
		
//		add(value): Arraylist의 맨 뒤에 데이터를 추가한다. 파이썬 append 개념
		list.add("hello");
		System.out.println(list);
//		뒤쪽부터 데이터가 들어가는 것을 볼 수 있다.
		list.add("bye");
		System.out.println(list);
		list.add("hi");
		System.out.println(list);

//		size(): arraylist에 저장된 데이터의 개수를 얻어옴. length 개념
		System.out.println(list.size());
		
//		add(index, value): Arraylist의 지정된 index의 위치에서부터 삽입한다.
		list.add(1, "1번에 추가된 String");
		System.out.println(list);
		
//		set(index, value): 데이터를 수정한다 		
		list.set(1, "추가된 String을 Int로 수정");
		System.out.println(list);
		
		System.out.println();
//		for문 (size + get): 특정위치의 데이터를 받아옴 		
		for(int i = 0; i <list.size(); i++) {
			System.out.println(list.get(i));
		}
		
		System.out.println();
//		향상된 for문을 사용하여 출력
		for(String str : list)
			System.out.println(str);
		
//		remove(index): ArrayList의 index 번째 위치를 제거한다
		list.remove(1);
		System.out.println("추가된 1번 제거 " + list);
//		혹은 데이터를 직접 지정해서 제거 가능
		list.remove("bye");
		System.out.println("bye 제거 " + list);
//		clear() : 모든 데이터 제거
		list.clear();
		System.out.println("모든 데이터 제거: " + list.size() +" "+list);
	}
}
728x90