TIL
- 서브쿼리...어려워서 정신이 좀 혼미하다..
- 스터디에서 홀수 짝수 세는 문제를 해봤는데 재밌었다. 추가로 배열에 넣는 것까지 해봤다. 근데 제네릭스를 그나마 살펴봐서 빨간줄이 쳐질때 왜 그런지 대충을 이해가 갔지만, 어쨌든 책으로 보던것과 실제로 작성해보는것에는 큰 차이가 있었다. 그래서 검색하면서 레퍼런스를 보고 간신히 배열을 만들어봤다.
- 내가 제네릭스 정의하는 수준까지는 아니더라도, 그래도 어느정도 개념이 잡혀가는 것 같아 뿌듯하다
- 점프 투 자바 docs를 발견했는데, 종종 애용할 것 같다!
ArrayList
- ArrayList는 가변적인 크기를 가질 수 있으며, 실수 형태를 가지고 싶은 경우에는 일반 변수시 int라고 하는 것과 다르게 Integer라고 해줘야 한다.
- add(아이템)을 통해 배열에 아이템 추가가 가능하며
- get(아이템)을 통해 조회가 가능
- size 메소드는 ArrayList의 갯수를 리턴 -> 컬렉션 객체마다 약간씩 다른 이름을 가진다
- contains 메소드는 리스트 안에 해당 항목이 있는지를 판별하여 그 결과를 boolean으로 리턴
- remove 메소드에는 2가지 방식이 있다.
- remove(객체) ex ) System.out.println(pitches.remove("129"));
- remove(인덱스) ex) System.out.println(pitches.remove(0));
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int even = 0;
int odd = 0;
ArrayList<Integer> evenArray = new ArrayList<Integer>();
ArrayList<Integer> oddArray = new ArrayList<Integer>();
for(int i = 0; i<10; i++){
System.out.println("입력");
int n = scanner.nextInt();
if (n%2==0){
even++;
evenArray.add(n);
}else {
odd++;
oddArray.add(n);
}
}
System.out.println("evenArray"+evenArray);
System.out.println("oddArray"+oddArray);
}
제네릭스 유의사항 추가
이렇게 선언 가능한데,
ArrayList<String> pitches = new ArrayList<String>();
그러나 이렇게 앞에만 선언하는 것이 더 좋다 -> 인텔리제이 상에서 뒤에 자료형(String, Integer)이 연한 회색으로 바뀌는 것을 확인할 수 있었다.
ArrayList<String> pitches = new ArrayList<>(); // 선호되는 방식
제네릭스 도입 이전에는 이렇게 선언했는데, 값을 넣는건 괜찮아도 값 빼낼 때 일일히 캐스팅을 해줘야 했다.
-> 제네릭스를 사용하지 않을 경우에는 ArrayList 안에 추가되는 객체는 Object 자료형으로 인식되기 때문
ArrayList pitches = new ArrayList();
String one = (String) pitches.get(0); // Object 자료형을 String 자료형으로 캐스팅한다.
제네릭스로 자료형을 선언하기만 하면 그 이후로는 자료형에 대한 형변환 과정이 필요없다.
이미 컴파일러가 해당 arrayList에는 반드시 String(또는 지정한) 자료형만 추가 되어야 함을 알기 때문이다.
이렇게 제네릭스를 이용하면 형변환에 의한 불필요한 코딩과 잘못된 형변환에 의한 런타임 오류를 방지할 수 있다.
03-07 리스트 (List)
[TOC] 리스트는 배열과 비슷한 자바의 자료형으로 배열보다 편리한 기능을 많이 가지고 있다. 리스트와 배열의 가장 큰 차이는 크기가 정해져 있지 않고 동적으로 변한다 ...
wikidocs.net
'TIL WIL' 카테고리의 다른 글
20220526 : TIL (0) | 2022.05.26 |
---|---|
20220525 TIL (1) | 2022.05.25 |
20220523 TIL (0) | 2022.05.23 |
WIL 5th (1) | 2022.05.23 |
20220520 TIL (0) | 2022.05.20 |