Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- Java데이터 타입
- break문
- 인텔리제이 기초 설정
- 연관관계
- 포함관계
- 메서드 오버로딩
- 메서드
- IntelliJ IDEA
- Thread
- this예약어
- function
- 형 변환
- multi-threading
- 인텔리제이 한글 깨짐 해결법
- Java
- 접근제어지시자
- for문
- 컴파일
- continue문
- 생성자
- JAVA객체지향
- While
- java변수
- 자바 멀티스레딩
- JAVA기초
- 집합관계
- 상수
- OPP개념
- 반복문
- 시스템 환경 변수 편집
Archives
- Today
- Total
최원종의 개발 블로그
ArrayList - 컬렉션 본문
ArrayList를 쓰는 이유
기존 배열 사용
// 배열로 채팅 접속자 관리
String[] users = new String[100]; // 최대 100명? 101명 오면?
int count = 0;
// 접속
users[count] = "철수";
count++;
// "철수" 퇴장 - 복잡!
for (int i = 0; i < count - 1; i++) {
users[i] = users[i + 1]; // 뒤에서 앞으로 밀기
}
users[count - 1] = null;
count--;
배열의 문제점
1. 크기 고정 : 처음에 100으로 잡으면 101번째는 못 들어옴
2. 삭제 복잡 : 중간 삭제 후 뒤 요소를 직접 밀어야 함
3. count 관리 : 실제 개수를 변수로 따로 관리해야 함
ArrayList 는 이 세 가지 불편함을 모두 해결한 클래스
import java.util.ArrayList;
ArrayList<String> users = new ArrayList<>(); // 크기 미리 안 정해도 됨
users.add("철수"); // 추가
users.add("영희");
users.remove("철수"); // 삭제 - 한 줄 끝!
System.out.println(users.size()); // 실제 개수 자동 관리
제네릭 <타입>
ArrayList 를 선언할 때 꺽쇠 안에 저장할 타입을 씀
ArrayList<String> names = new ArrayList<>(); // 문자열만
ArrayList<Integer> scores = new ArrayList<>(); // 정수만
타입을 지정하면 잘못된 타입을 넣을 때 실행 전에 오류를 잡아줌
ArrayList<String> list = new ArrayList<>();
list.add("철수");
list.add(100); // 컴파일 오류! String 만 가능
- 문법 연습 코드
package io.ch17_1.array;
import java.util.ArrayList;
public class ArrayListEx3 {
public static void main(String[] args) {
// 1. 정수를 담은 리스트
ArrayList<Integer> intList = new ArrayList<>();
intList.add(10);
intList.add(20);
intList.add(30);
System.out.println("정수 리스트 : " + intList);
// 2. 실수를 담은 리스트
ArrayList<Double> doubleList = new ArrayList<Double>();
doubleList.add(1.0);
doubleList.add(2.0);
doubleList.add(3.0);
System.out.println(doubleList);
// 3. 불리언 담을 리스트
ArrayList<Boolean> booleanList = new ArrayList<>();
booleanList.add(true);
booleanList.add(false);
// 사용자 정의 객체를 담는 리스트
ArrayList<Book2> book2List = new ArrayList<>();
book2List.add(new Book2("자바책"));
book2List.add(new Book2("RDBMS책"));
// book2List.get(0) ==> 주소값.title
System.out.println(book2List.get(0).title);
System.out.println(book2List.get(1).title);
try {
if (book2List.size() > 2) {
System.out.println(book2List.get(2).title);
} else {
System.out.println("해당 인덱스에는 데이터가 없습니다.");
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("프로그램 정상 종료");
} // end of main
} // end of class
class Book2 {
String title;
public Book2(String title) {
this.title = title;
}
@Override
public String toString() {
return "[title=" + title + "]";
}
}
'Java > JAVA 유용한 클래스' 카테고리의 다른 글
| List 인터페이스 - 컬렉션 (0) | 2026.03.30 |
|---|---|
| Vector - 컬렉션 (0) | 2026.03.30 |
| 컬렉션 프레임워크(Collections Framework) (0) | 2026.03.27 |
| (소켓 - 7) 소켓을 활용한 파일 전송 (1:1) (0) | 2026.03.27 |
| (소켓 - 6) 1:N 실시간 채팅 (브로드캐스트) (0) | 2026.03.27 |

