11월 7일 Day 18

여우·2022년 11월 9일
0

공부중

목록 보기
12/38

Collection Set

  • Set은 컬렉션중의 하나 종류이다.
    Set은 List와의 다른점은 index를 사용하지 않는다. 그리고 값의 중복을 허용하지 않기에
    똑같은 값이 여러번 입력이 되어도 하나만 입력되어진다.

예시)

10이 두번 입력 되더라도, 한번만 입력된것으로 나온다.

Set의 출력

향상된 for문을 통해서 출력하거나, Iterator를 통하여 저장되어 있는 객체를 출력하는 방법도 가능하다.

  • 랜덤한 숫자 뽑기
    Set은 값의 중복을 허용하지 않는다는 이점 덕에 중복되지 않는 난수를 추출하는데 용이 하다.

예시)

random은 0에서 부터 () 괄호 안의 매개 변수보다 1 작은 숫자를 사용하기에 +1을 해주면, 1 ~ 45까지 추출을 하게 됩니다.

Collection의 생성자에 다른 Collection을 넣어서 객체를 생성할 수 있다.
이때, 기존 컬렉션의 구성 요소가 새로운 컬렉션에 그대로 이전 된다.

Set을 이용하여 List 만들기

List에는 index가 존재하기에 정렬이 가능하다.

Collection Map

  • map : 배열의 index 대신, key를 이용하여 value에 접근하는 자료구조
  • key는 중복될 수 없고, value는 중복될 수 있다
  • arr[i] 형식으로 배열의 각 값에 접근하는 것처럼
  • map[key] 형식으로 접근한다. 단, 배열처럼 쓰지는 않고, 함수를 이용하여 값에 접근한다.

예시)

List.add() 하듯
Map.put("Key" ,"Value") 형식으로 생성하고, 값을 가져올때는 arr[i] 처럼 map.get(key) 형식으로 불러 올 수 있다.
key 로 value를 호출 할 수 있지만 value를 호출한다고 해서 key 값이 도출되진 않는다.

-map 내부의 값 출력 방식

Set , Iterator, Enumeration, EntrySet등이 있다. 추출방법이 여러가지인 이유는 Library 에서 제공되는 메서드들의 반환식이 각각 다르기에 여러 방법이 존재하나. 결과적 도출에 이르는 단계는 보통 다 비슷하다.

-HashMap
Map은 다수의 값을 하나로 묶어서 전달해야 할 때 사용된다.

예시)
먼저 main 함수 위로 Class를 만들고 HashMap 객체를 생성하여 데이터들을 입력 해주고, selectAll() 이라는 함수도 선언해준다.

selectAll()은 만들어져 있는 hashMap 타입의 map을 entrySet()으로 출력가능한 방식으로 변환시킨다음 for문 안에서 keyword를 포함하는 글자를 찾아서 result라는 HashMap 타입의 새로운 객체에 저장하여서 반환합니다.

main문 안에서는 selectAll()한 함수를 반환 받아서 그 반환 받은 값을 또다시 for문을 통해 출력해주고 있습니다.

  • Map의 출력

class Person을 만들고 기본생성자와 멤버 필드 이름과 나이는 getter 와 setter를 선언해두었습니다. 그리고 출력을 위한 toString을 오버라이딩해줍니다.

main문에서는 Person으로 만든 객체와 HashMap 타입의 객체를 만들고 Person은 setter를 통하여 이름과 나이를 대입시켜주고, HashMap에서는 객체의 키 값을 name 과 age로 설정하여 value를 대입시켜서 출력하고 있습니다.

profile
우당탕탕 지금은 개발중

0개의 댓글