2023.06.07 - [JAVA기초] - 람다식 , 최상위클래스 Object
람다식 , 최상위클래스 Object
2023.06.07 - [JAVA기초] - 추상클래스, 추상메서드, 익명클래스 ,인터페이스,함수형인터페이스 추상클래스, 추상메서드, 익명클래스 ,인터페이스,함수형인터페이스 2023.06.02 - [JAVA기초] - 스태틱 (stati
ji7290.tistory.com
컬렉션 프레임워크
여러객체들을 일정한 구조에 묶어서 저장하는 클래스
List, Set, Map
List는 : 선형 자료구조,
배열과 유사하게 각 index를 이용하여 구분한다.
리스트는크기가 자동으로 조정되고, 추가 ,삭제, 등의 메서드를 제공한다. 값의 중복을 허용한다.
리스트의 메서드
리스트의 객체를 추가하는 메서드
리스트에서 index를 이용하여 특정요소를 불러오기
리스트에서 삭제되는 것은 아니다.
index번째 객체를 삭제한다.
만약 1번째에있는 값인 10을 지우고자 직접 값을 넣게 되버리면
이렇게 예외가 발생한다. remove 괄호 안에는 무조건 index번호를 넣어야한다.
반복되는 작업을 처리하는 별도의 메서드가 있다.
<컬렉션의 제네릭 타입>
컬렉션에 들어가는 객체는 기본적으로 Object로 취급된다.
특정 프로그램에서는 보통 특정 타입의 객체만 다루게 되고
Object로 업캐스팅 되어 있으면 특정 메서드를 호출하기 위해 다운캐스팅을 수행해야 한다.
불필요한 다운캐스팅을 하지 않기 위해서 리스트에 들어가는 객체의 표준 타입을 지정할 수 있다.
자바 1.5 이후로는 제네릭 타입을 지정하는 것이 기본 권장 사항이다.
제네릭타입이 String(문자열) 로 선언되어 있기때문에
int형인 10을 추가할 수 없다.
add의 괄호 안에 문자열로 넣는다.
list와 반복문의 시너지
for-each
for문
for문으로 list에 담긴 값을 순차적으로 꺼낼 수 도 있고.
for each문으로 간단하게 꺼낼 수 있다.
<리스트와 자바 문자열 내장함수의 시너지 >
contains
indexOf
remove if
sort
contains : 포함하고 있으면
indexOf : 값을 찾아내기
removeIf : 있으면 지워라
sort(정렬) : 자바의 String은 comparator를 가지고 있다.
set (집합) : 비선형 자료구조, 순번이 없고 값의 중복들을 허용하지 않는다.
중복되면 안되는 값을 저장하기 위해 사용 여러 요소에서 중복값을 제거하기 위해 사용할 수 있다.
순번이 없기 때문에 for문을 쓸 수 없지만
for - each문을 사용해서 불러올 순 있다.
ex ) list = 페레로로쉐 , set = 하리보
set의 내장함수에 get은 없다 (순번이 없기 때문)
1에서 45 사이에 중복없는 숫자 6개를 뽑아서 오름차순으로 정렬하여 한 줄 에 출력하세요
내가 작성하다가 막힌 코드
1. set -> list로 바꾸는 것에서 막힘
2. list에서 어떻게 정렬해야하는지.
강사님 코드
Map : key와 value를 1:1 맵핑하여 저장하는 자료구조
배열 및 리스트의 index 대신 임의의 key를 이용하여 value에 접근한다.
key는 중복될 수 없고, value는 중복될 수 있다.
map의 key는 array의 index 역할을 한다.
index는 항상 0부터 시작하는 정수이지만 key는 원하는 임의의 값을 넣을 수 있다.
index와 마찬가지로 key가 중복되는 경우는 없다.
value는 중복이 가능하다 key를 이용하여 value에 접근할 수 있다.
value를 이용하여 역으로 key를 조회할 수 없다.
value는 중복이 가능하다 key를 이용하여 value에 접근할 수 있다.
value를 이용하여 역으로 key를 조회할 수 없다.
value "이지은"에 해당하는 key가 없다.
map에서 key의 모음 혹은 value의 모음을 추출할 수 있다.
keyset은 Set의 특징을 그대로 가진다 (순서가 있고, 중복이 없다)
순환자 :iterator
인터페이스로 key와 value 값을 순환해서 꺼내올 수있다.
List. Set, Map은 Java, utill 패키지에 포함되어 있다.
List, Set, Map은 인터페이스이므로, 인터페이스를 implements하는 클래스로 생산한다.
'JAVA기초' 카테고리의 다른 글
Thread (쓰레드) , Runnable, File(파일) (0) | 2023.06.26 |
---|---|
throws Exception 예외처리, simpleDateFormat (0) | 2023.06.23 |
람다식 , 최상위클래스 Object (0) | 2023.06.07 |
추상클래스, 추상메서드, 익명클래스 ,인터페이스,함수형인터페이스 (0) | 2023.06.07 |
스태틱 (static) 정적변수, 정적메서드 ,final (0) | 2023.06.02 |