ArrayList를 알아봅시다! 😉
오늘은 ArrayList의 사용법에 대해서 알아봅시다.
ArrayList는 List 인터페이스를 상속받은 여러 클래스들 중 하나입니다.
ArrayList은 여러 데이터를 순서대로 관리하고 싶을 때 사용합니다.
그럼 ArrayList와 일반 배열과의 차이점은 무엇일까요?
- ArrayList와 일반 배열과의 차이점은 ArrayList는 크기가 가변적으로 변한다는 것 입니다.
int[] nums = new int[5];
이렇게 배열은 배열을 선언할 때 방의 갯수도 선언해주기때문에 크기를 바꿀 수 없습니다.
이제 ArrayList를 사용해봅시다!
import java.util.ArrayList;
ArrayList를 사용하기 위해서는 이 문장을 import 해야합니다.
List<String> names = new ArrayList<>();
String type을 저장할 수 있는 ArrayList를 생성해서 참조값을 names 라는 지역변수에 담아봅시다.
제너릭 클래스이기 때문에 <> 안에는 다양한 type이 들어갈 수 있습니다.
ex)
List<Integer> names = new ArrayList<>();
이때 ArrayList는 클래스, List는 인터페이스입니다.
즉, List는 도형, ArrayList는 직사각형이라고 보시면됩니다.
그렇기 때문에 List의 사용은 ArrayList<String> names = new ArrayList<>(); 보다 유연성을 높혀줍니다.
인덱스 추가
names.add("김00");
names.add("이00");
names.add("박00");
이제 ArrayList에 방을 추가해봅시다.
인덱스 추가는 add를 사용합니다.
배열의 크기
int size = names.size();
ArrayList의 배열의 크기는 size를 사용합니다.
인덱스 내용 가져오기
String name1 = names.get(0);
String name2 = names.get(1);
String name3 = names.get(2);
get(index)을 사용하면 특정방에 저장된 내용을 참조할 수 있습니다.
특정 방의 값 수정(덮어쓰기)
String prevName = names.set(0, "최00");
set(index, content)를 사용하면 특정 방의 값을 수정할 수 있습니다.
특정 인덱스 삭제(방 자체를 제거하기)
names.remove(0);
names.remove("최00");
특정 인덱스 삭제는 remove를 사용합니다.
이때 index를 사용하여 제거할 수 도 있고 참조값을 사용하여 제거할 수도 있습니다.
cf) Integer의 remove
인덱스를 활용한 삭제
nums.remove(1);
참조값을 활용한 삭제
Integer value = 20;
nums.remove(value);
nums.remove(new Integer(20));
모든 방을 다 삭제
names.clear();
clear는 모든 방을 전부 삭제해줍니다.
예제
package test.main;
import java.util.ArrayList;
import java.util.List;
import test.mypac.Member;
public class MainClass04 {
public static void main(String[] args) {
// Member type 을 저장할수 있는 ArrayList 객체를 생성해서 참조값을 members 라는
// 지역변수에 담아 보세요.
List<Member> members=new ArrayList<>();
//Member 객체를 하나 생성해서 참조값을 mem1 이라는 지역 변수에 담아 보세요
Member mem1=new Member();
// mem1 를 이용해서 회원 한명의 정보를 담아 보세요.
mem1.num=1;
mem1.name="김구라";
mem1.addr="노량진";
//Member 객체를 하나 생성해서 참조값을 mem2 이라는 지역 변수에 담아 보세요
Member mem2=new Member();
// mem2 를 이용해서 회원 한명의 정보를 담아 보세요.
mem2.num=2;
mem2.name="해골";
mem2.addr="행신동";
//mem1 과 mem2 에 들어 있는 참조값을 members 를 이용해서 위에서 생성된 배열(ArrayList)에 저장해 보세요.
members.add(mem1);
members.add(mem2);
//아래 코드의 의미를 이해할수 있도록 곰곰히 생각해 보세요~
List<Member> a=members;
Member b=members.get(0);
int c=members.get(0).num;
String d=members.get(0).name;
String e=members.get(0).addr;
//members 가변배열에 저장된 값을 이용해서 회원 목록을 아래와 같은 형식으로
//반복문을 활용해서 출력 되도록 해 보세요.
/*
* 번호 => 1, 이름 => 김구라, 주소 => 노량진
* 번호 => 2, 이름 => 해골, 주소 => 행신동
* .
* .
* .
*/
for(int i=0; i<members.size(); i++) {
//i 번째 방의 Member 객체 참조
Member tmp=members.get(i);
//출력할 문자열 구성
String line="번호=>"+tmp.num+" 이름=>"+tmp.name+" 주소=>"+tmp.addr;
//출력하기
System.out.println(line);
}
for(Member tmp:members) {
String line="번호=>"+tmp.num+" 이름=>"+tmp.name+" 주소=>"+tmp.addr;
System.out.println(line);
}
}
}
'Languages > JAVA' 카테고리의 다른 글
[JAVA] HashSet의 개념, 사용법, 예제 (0) | 2021.11.09 |
---|---|
[JAVA] HashMap의 개념, 사용법, 예제 (0) | 2021.11.08 |
[JAVA] 이클립스에서 import 하는 방법들, 단축키 (0) | 2021.11.05 |
[JAVA] 클래스의 모든 것 #6 - 제네릭(Generics) 클래스 (0) | 2021.11.05 |
[JAVA] 자바 자료형 알아보기 #5 - 래퍼 클래스(Wrapper class) (0) | 2021.11.03 |