simDev1234
심플하고 차분하게
simDev1234
전체 방문자
오늘
어제
  • 분류 전체보기
    • Computer Science
      • Basic Math
      • Data Structure
      • Algorithm
      • Database
      • OS
    • Language
      • Java
      • Kotlin
      • SQL
    • Framework
      • Spring
      • Orm&Mapper
      • 프로젝트로 스프링 이해하기
      • 스프링 라이브러리
    • Infra
      • Cloud
      • Docker
      • Redis
      • AWS, Azure
      • Device
    • Etc
      • CleanCoding
    • Git,Github

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • null
  • controllerTest
  • JVM메모리구조
  • 자바프로그래밍
  • 자바프로그램
  • 참조타입
  • scanner #next() #nextLine()
  • 404
  • 자바메모리구조
  • 참조변수
  • 컨트롤러
  • 자바
  • 스프링

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
simDev1234

심플하고 차분하게

Computer Science/Algorithm

HashSet<int[]>와 Hashset<ArrayList<Integer>>

2022. 8. 17. 11:32

|  HashSet<int[]>와 Hashset<ArrayList<Integer>>

문제를 풀다보면, 좌표를 집합에 넣어야 하는 경우가 있었다.

예를 들어, (0, 1), (2, 1) 

그래서 아무 생각 없이 아래와 HashSet<int[]>를 쓰게 되면 contains를 할 때 검색이 제대로 되지 않는 걸 볼 수 있다.

 

왜 그럴까?

 

이유는 배열의 경우 Hashcode를 비교하고, 

리스트의 경우 Wrapper된 Integer값을 비교하기 때문.

HashSet<int[]> int 배열의 hashcode를 비교
HashSet<ArrayList<Integer>> Integer List의 Wrapper객체(Integer)를 비교

 

따라서, 좌표와 같은 수열의 집합을 만든다고 하면 HashSet 안에 ArrayList로 넣는 것이 좋다.

 

[ 참고 ]

https://stackoverflow.com/questions/65454683/check-if-an-array-exists-in-a-hashsetint

'Computer Science > Algorithm' 카테고리의 다른 글

[알고리즘] 그리디  (0) 2022.08.25
[알고리즘] 탐색 - DFS, BFS, 이진 탐색  (0) 2022.08.25
[알고리즘] 정렬  (0) 2022.08.11
[알고리즘] 알고리즘 개요  (0) 2022.08.09
[백준 11660] 구간 합 구하기 5  (0) 2022.07.14
    'Computer Science/Algorithm' 카테고리의 다른 글
    • [알고리즘] 그리디
    • [알고리즘] 탐색 - DFS, BFS, 이진 탐색
    • [알고리즘] 정렬
    • [알고리즘] 알고리즘 개요
    simDev1234
    simDev1234
    TIL용 블로그. * 저작권 이슈가 있는 부분이 있다면 댓글 부탁드립니다.

    티스토리툴바