ArrayList



  • 동적배열 ArrayList
  • 향상된 for문 활용


1. 동적배열


크기가 정해져 있지 않은 동적배열 ArrayList

ArrayList는 크기가 정해져 있지않으며 기본적으로 Object 타입의 자료형을 갖는다 ArrayList에도 자료형을 지정할 수 있으며 반복문등으로 값을 뽑아내기 위해서는 자료형을 지정해주어야 한다

ArrayList<String> list = new ArrayList<String>();	 //String자료형을 갖는 동적배열
list.add("사자"); // listname.add를 통해 값 입력
list.add("호랑이");
list.add("코끼리");
list.add("토끼");
list.add("고양이");
// list.add(3);	//

for (int i = 0; i < list.size(); i++) {
  String str = (String)list.get(i);
  // list의 값을 반환하기 위한 get메서드는 기본적으로 object형을 반환하기 때문에 casting 필요
  System.out.println(str);
}

// 향상된 for문
for(String str : list){
  System.out.println(str);
}

		System.out.println(list);

		list.set(2, "dog");	// 값 변경 => list.set(index,value)
		System.out.println(list);

		list.remove(4);	// 값 제거 => list.remove(index)
		System.out.println(list);

		Collections.sort(list);	//	Collections 라는 클래스
		System.out.println(list);

		for (String str : list) {	// 향상 된 for 문 쓰려면 자료형 정해줘야함
			System.out.println(str);
		}


import java.util.ArrayList;

import javax.swing.text.html.HTMLDocument.Iterator;

public class ArrayListEx2 {

	public static void main(String[] args) {

		ArrayList<Student> re = method(); //static메서드 접근  //반환 된 Arraylist받기 위한 동일 자료형 변수 설정

    for(Student o : re){
      System.println(o);
    }
  }

	static ArrayList method() {  //ArrayList 반환 메서드
		Student a = new Student("홍길자", 20);
		Student b = new Student("홍길숙", 30);
		Student c = new Student("홍길동", 40);
		ArrayList<Student> list = new ArrayList<Student>();	// string,int 둘다 반환 타입을 클래스로 줘버림
		list.add(a);  // Student타입 a객체가 동적배열에 추가 됨
		list.add(b);
		list.add(c);
		return list;  // ArrayList 반환
	}
}

class Student {
	String name;
	int age;

	public Student(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public String toString() {
		return name + "학생은" + age + "세입니다";
	}
}