[JAVA] List, 향상된 for문, split

 

 

 

<List>

- 객체 배열 Upgrade 버전

- 자료들을 순차적으로 나열한 자료구조로 인덱스로 관리되며, 중복해서 객체 저장 가능
- 구현 클래스로 ArrayList와 Vector, LinkedList가 있음

- java.util.ArrayList : 배열 형태 List (가장 대표적인 List 자식 클래스)

 

(1) List는 인덱스가 있다. (0번 부터 시작)
- List에 저장된 데이터의 개수를 얻어오는 방법 : int List.size()
-> 배열명.length 대신 사용

(1) List가 비어있는지 확인하는 방법
- boolean java.util.List.isEmpty() : 비어있으면 true를 반환

 

(2) Student List.remove(int index)

- 리스트에서 index번째 요소를 제거
- 이 때, 제거된 요소가 반환된다
- List는 중간에 비어있는 인덱스가 없게 하기 위해서 remove() 동작 시 뒤쪽 요소를 한 칸씩 당겨온다.

 

 

1) ArrayList() 기본 생성자
- 기본 크기 10짜리 리스트 생성
- 하지만 리스트는 크기가 늘었다 줄었다 하기 때문에 큰 의미 없음

 

2) ArrayList(용량)

- 용량 만큼의 리스트 생성
- 너무 큰 값을 작성하면 메모리를 많이 소모함

 

3) private List <Student> studentList = new ArrayList<Student>();

- Student로 저장되는 타입이 제한된 리스트 생성
- Student만 저장 가능 == 모든 게 Student
- Student임을 검사할 필요가 없다

 

4) 제네릭스(Generics)

 

- 보통 제네릭이라고 함 <> 표시
- 제일 중요한 역할
- 컬렉션에 저장되는 객체 타입을 한 가지로 제한

 

<향상된 for문(for each문)>

- 컬렉션, 배열의 모든 요소를 순차적으로 반복 접근할 수 있는 for문
(순차적 : 0번 인덱스부터 마지막 요소까지 인덱스를 1씩 증가)

[작성법]
for(컬렉션 또는 배열에서 꺼낸 한개의 요소를 저장할 변수 : 컬렉션명 또는 배열명 ) {}

int index = 0;
for( Student std : studentList) {
std에는 for문 반복 시 마다 0, 1, 2, ... 인덱스 요소들이 한 번씩 저장됨

 

System.out.print(index++) + "번 : ");

System.out.println(std);

 

 

1) contains (포함)
- boolean String.contains(문자열) : String에 문자열이 포함되어 있으면 true값 반환

 

 

<split / integer.parselnt / trim>

 

(1) split()

- 구분자를 기준으로 문자열을 잘라 배열로 입력할 때 사용하는 메소드

 


(2) Integer.parseInt

- 숫자형의 문자열을 인자 값으로 받으면 해당 값을 10진수의 int형으로 반환

 


(3) trim()

- 앞뒤 공백을 제거한 문자열의 복사본을 반환

- static 형태의 메소드(method)는 생성할 필요 없이 바로 불러서 사용 가능