728x90
반응형
* ArrayList<E>는 가변 크기의 배열을 구현한 컬렉션 클래스이다.
경로명: java.util.ArrayList
Vector 클래스와 거의 동일하지만 차이점
ArrayList는 스레드간 동기화를 지원하지 않는다.
다수의 스레드가 동시에 ArrayList에 요소를 삽입하거나 삭제할 때 ArrayList의 데이터가 훼손될 우려가 있다.
하지만 멀티스레드 동기화를 위한 시간 소모가 없기 때문에, ArrayList는 Vector보다 속도가 빨르다.
단일 스레드 응용에는 ArrayList가 더 효과적이다.
메소드 | 설명 |
boolean add(E element) | ArrayList의 맨 뒤에 element 추가 |
void add(int index, E element) | 인덱스 index 위치에 element 삽입 |
boolean addAll(Collection< ? extends E> c) | 컬렉션 c의 모든 요소를 ArrayList의 맨 뒤에 추가 |
void clear() | ArrayList의 모든 요소 삭제 |
boolean contains(Object o) | ArrayList가 지정된 객체를 포함하고 있으면 true 리턴 |
E elementAt(int index) | index 인덱스의 요소 리턴 |
E get(int index) | index 인덱스의 요소 리턴 |
in indexOf(Object o) | o와 같은 첫 번째 요소의 인덱스 리턴, 없으면 -1 리턴 |
boolean isEmpty() | ArrayList가 비어있으면 true 리턴 |
E remove(int index) | index 인덱스의 요소 삭제 |
boolean remove(Object o) | o와 같은 첫 번째 요소를 ArrayList에서 삭제 |
int size() | ArrayList가 포함하는 요소의 개수 리턴 |
Object[] toArray() | ArrayList의 모든 요소를 포함하는 배열 리턴 |
* 문자열 입력받아 ArrayList에 저장
package Ch7_Ex;
import java.util.*;
public class ArryaListEx {
public static void main(String[] args) {
// 문자열만 삽입 가능한 ArrayList 생성
ArrayList<String> a = new ArrayList<String>(); // var a = new ArrayList<String>(); 로 간략하게 바꾸어 쓸 수 있다.
// 키보드로부터 4개의 이름을 입력받아 ArrayList에 삽입
Scanner sc = new Scanner(System.in); // Scanner 객체 생성
for(int i=0; i<4; i++) {
System.out.print("이름을 입력하세요>>");
String s = sc.next();
a.add(s); // ArrayList 컬렉션에 삽입
}
// ArrayList에 들어 있는 모든 이름 출력
for(int i = 0; i<a.size(); i++) {
String name = a.get(i);
System.out.print(name + " ");
}
// 가장 긴 이름 출력
int longestIndex = 0; // 현재 가장 긴 이름이 있는 ArryaList 내의 인덱스
for(int i=0; i<a.size(); i++) {
if(a.get(longestIndex).length()<a.get(i).length()) // 이름 길이 비교
longestIndex = i; // i 번째 이름이 더 긴 이름임
}
System.out.println("\n가장 긴 이름은 : " + a.get(longestIndex));
sc.close();
}
}
반응형
'자바공부' 카테고리의 다른 글
Iterator 순차 검색, 명품 자바 프로그래밍 7장 (0) | 2022.06.10 |
---|---|
컬렉션 Vector의 활용, 명품 자바 프로그래밍 7장 (0) | 2022.06.10 |
컬랙션 매개변수 메소드 만들기, 명품 자바 프로그래밍 7장 (0) | 2022.06.10 |
명품 자바 프로그래밍 7장 요약 (0) | 2022.06.10 |
명품 자바 프로그래밍 6장 요약 (0) | 2022.05.31 |