Java
자바 step12 - UtilClass(ArrayList 객체)
코딩탕탕
2022. 11. 7. 18:39
java 에서 배열은 크기를 조절할수 없는 고정 배열이다.
따라서 동적으로 item 을 추가하고 삭제하고 하는 작업을 하려면 일반배열은 사용할수 없다.
그래서 해당 작업을 하려면 ArrayList 객체를 사용하면 된다.
package test.main;
import java.util.ArrayList;
/*
* java 에서 배열은 크기를 조절할수 없는 고정 배열이다.
*
* 따라서 동적으로 item 을 추가하고 삭제하고 하는 작업을 하려면 일반배열은 사용할수 없다.
*
* 그래서 해당 작업을 하려면 ArrayList 객체를 사용하면 된다.
*/
public class MainClass01 {
public static void main(String[] args) {
// String type 을 저장할수 있는 ArrayList 객체생성
ArrayList<String> names=new ArrayList<String>();
// "김구라" , "해골", "원숭이" 3개의 String type 을 저장해 보세요.
names.add("김구라");
names.add("해골");
names.add("원숭이");
//0 번방의 아이템을 불러와서 item 이라는 변수에 담아보세요
String item=names.get(0);
//1 번방의 아이템을 삭제 하려면?
names.remove(1);
//0 번방에 "에이콘" 을 넣고 싶으면?
names.set(0, "에이콘");
//저장된 아이템의 갯수(size) 를 size 라는 지역 변수에 담아 보세요.
int size=names.size();
System.out.println(names + " " + size);
//저장된 모든 아이템 전체 삭제
names.clear();
}
}
<console>
[에이콘, 원숭이] 2
ArrayList<Strintg> <> 안에 String type을 선언하였으므로 안에 저장되는 type은 String type만 가능하다.
앞서 배운 제네릭(Generic) class 를 사용한 것이다.
add() 메소드로 특정 문자열을 저장한 뒤에 그것을 호출할 수 있다.
또한 배열이므로 숫서가 존재하기 때문에 인덱싱을 사용해 삭제, 추가도 가능하다.
응용 문제 1)
ArrayList 객체에 친구 이름 5 개를 담고 반복문 돌면서 친구 이름을 다음과 같은 형식으로 출력해보세요.
* 0 번째 친구 : 김구라
* 1 번째 친구 : 해골
* 2 번째 친구 : 원숭이
package test.main;
import java.util.ArrayList;
public class MainClass02 {
public static void main(String[] args) {
/*
* ArrayList 객체에
*
* 친구 이름 5 개를 담고
*
* 반복문 돌면서 친구 이름을 다음과 같은 형식으로 출력해보세요.
*
* 0 번째 친구 : 김구라
* 1 번째 친구 : 해골
* 2 번째 친구 : 원숭이
*/
ArrayList<String> names=new ArrayList<String>();
names.add("김구라");
names.add("해골");
names.add("원숭이");
names.add("주뎅이");
names.add("덩어리");
System.out.println(names);
// names 의 size 만큼 반복문 돌면서
for(int i=0; i<names.size(); i++) {
// i 번째 방에 저장된 친구 이름 참조
String tmp=names.get(i);
System.out.println(i + " 번째 친구 : "+tmp);
}
}
}
<console>
[김구라, 해골, 원숭이, 주뎅이, 덩어리]
0 번째 친구 : 김구라
1 번째 친구 : 해골
2 번째 친구 : 원숭이
3 번째 친구 : 주뎅이
4 번째 친구 : 덩어리
ArrayList 객체를 String type으로 생성하여 그 안에 문자열을 저장했다. 단순히 저장한 뒤에 콘솔창에 호출하면 List 형식으로 나오게 되는데 위와 같은 문제를 풀려면 for문을 돌려 하나씩 빼서 출력해주어야 된다.