리스트 (List)
배열은 크기가 정해져있으므로, 동적으로 자료형의 갯수가 가변하는 상황이라면 List를 사용하는 것이 유리하다.
- ArrayList
먼저 ArrayList 객체를 생성한다.
public class TestList {
public static void main(String[] args) {
ArrayList<String> pitches = new ArrayList<String>();
ArrayList는 import로 util을 추가해주어야한다.
단축키 : command + shift + o
import java.util.ArrayList;
public class TestList {
public static void main(String[] args) {
ArrayList<String> pitches = new ArrayList<String>();
※ 자바는 J2SE 5.0 버전 이후부터 ArrayList<String> pitches = new ArrayList<String>(); 이런식으로 객체를 포함하는 자료형도 어떤 객체를 포함하는지에 대해서 명확하게 표현하는것을 권고하고 있다.
add : 리스트 항목 추가하기
ArrayList<String> pitches = new ArrayList<String>();
pitches.add("138");
pitches.add("129");
pitches.add("142");
변수.add(지정위치, 추가하고 싶은 값); 으로 사용하면 원하는 위치에 원하는 값을 넣을 수도 있다.
※자바는 0부터 시작하는 걸 잊지 말것
get : 특정 인덱스의 값 추출하기
System.out.println(pitches.get(1));
size : ArrayList의 갯수를 리턴한다.
System.out.println(pitches.size());
contains : 리스트 안에 항목값이 있는지를 판별하여 그 결과를 boolean으로 리턴한다.
System.out.println(pitches.contains("142"));
리스트 안에 142라는 값이 포함되어있으므로 true를 리턴한다.
remove :
remove 메소드에는 2개의 방식이 있다. (이름은 같지만 입력파라미터가 다르다)
- remove(객체)
- remove(인덱스)
remove(객체)의 경우는 리스트에서 객체에 해당되는 항목을 삭제하고 삭제한 결과를 리턴한다.
System.out.println(pitches.remove("129"));
수행결과는 다음과 같다.
true
"129"라는 항목이 성공적으로 삭제되고 true를 리턴한다.
remove(인덱스)의 경우는 해당 인덱스의 항목을 삭제하고 삭제된 항목을 리턴한다.
System.out.println(pitches.remove(0));
수행결과는 다음과 같다.
138
pitches의 첫번째 항목은 "138"이므로 "138"이 삭제된 후 "138"을 리턴했다.
- 제네릭 (Generics)
https://gangnam-americano.tistory.com/47
ArrayList<String> aList = new ArrayList<String>();
위에서 사용한 첫번째 코드의 <String> 이라는 제네릭스 표현식은 "ArrayList 안에 담을 수 있는 자료형은 String 타입 뿐이다" 라는 것을 의미한다.
<>안에 어떠한 타입을 선언해주어 해당 ArrayList, List 등이 사용할 객체의 타입을 지정해준다는 뜻이다.
이는 다룰 객체의 타입을 미리 명시하여 객체의 형변환을 사용할 필요없게 하며, 내가 사용하고 싶은 데이터 타입만 사용할 수 있게 해주는 효과가 있다.
제네릭(Generics)은 크게 2가지의 장점을 가지고 있다.
1. 타입의 안정성 : 의도하지 않은 타입의 객체가 저장되는 것을 막고, 다른 타입의 객체로 인한 타입 형태가 맞지 않아 발생하는 문제를 없애준다.
2. 불필요한 형변환을 줄여 코드의 간결함 : 타입을 미리 명시함으로써 다른 타입의 객체가 저장되지 않아 객체를 꺼내 사용할 시 형변환을 통한 타입을 맞출 필요가 없어 코드를 간결하게 줄일 수 있다.
'Study > JAVA' 카테고리의 다른 글
[점프투자바] 04장 제어문 04-4 ~ 5 for문, for each문 (0) | 2021.10.21 |
---|---|
[점프투자바] 04장 제어문 04-3 while문 (0) | 2021.10.21 |
[점프투자바] 03 자료형 03-6 배열(Array) (0) | 2021.10.20 |
[JAVA] Mac 관련 단축키 및 여러가지 설정방법 (0) | 2021.10.20 |
[점프투자바] 04 제어문 04-1 ~ 2 조건문(if문, switch문) (0) | 2021.10.20 |