음...이게 뭐지요? 단순히 boolean 배열을 wrapping 해서 특정 위치의 boolean 값을 flip 하는 몇 가지 메소드를 만들어놓은것으로만 보이는데요? ArrayList<Integer> 에 해당하는 것을 만드시려던 것 아닌가요? 그런데 이거는 정해진 capacity 이상은 크기를 늘일 수도 없고, 중간 삽입, 삭제 역시 구현하지 않은 것 같구요. 그보다도 실제 정수 데이터는 저장하지도 않는 것 같군요?? 혹시 만들던 중간 소스를 올리신 거 아닌가요?
좀 더 상상을 해보니 Set 해당하는 것을 만드시려던게 아닌가 하는 생각이 듭니다. 몇번째 위치에 어떤 데이터가 저장되어 있는가에 관심있는 것이 아니라 단지 어떤 정수가 저장되어 있는지 아닌지만 관심이 있는 것 같아서요. 그런 경우시라면 hashing 을 이용하는 HashSet 또는 binary tree 를 사용하는 TreeSet 이 좋은 선택입니다. 속도는 전자가 빠르고 메모리 사용량은 후자가 적습니다. 관심있는 정수의 범위가 작다면 지금처럼 boolean 배열을 사용하시는 것이 좋겠지만 그렇지 않다면 상당한 메모리를 낭비하게됩니다.
음...이게 뭐지요?
음...이게 뭐지요? 단순히 boolean 배열을 wrapping 해서 특정 위치의 boolean 값을 flip 하는 몇 가지 메소드를 만들어놓은것으로만 보이는데요? ArrayList<Integer> 에 해당하는 것을 만드시려던 것 아닌가요? 그런데 이거는 정해진 capacity 이상은 크기를 늘일 수도 없고, 중간 삽입, 삭제 역시 구현하지 않은 것 같구요. 그보다도 실제 정수 데이터는 저장하지도 않는 것 같군요?? 혹시 만들던 중간 소스를 올리신 거 아닌가요?
조건으로 '담을 수
조건으로 '담을 수 있는 정수는 0부터 capacity - 1'가 있습니다.
좀 더 상상을 해보니
좀 더 상상을 해보니 Set 해당하는 것을 만드시려던게 아닌가 하는 생각이 듭니다. 몇번째 위치에 어떤 데이터가 저장되어 있는가에 관심있는 것이 아니라 단지 어떤 정수가 저장되어 있는지 아닌지만 관심이 있는 것 같아서요. 그런 경우시라면 hashing 을 이용하는 HashSet 또는 binary tree 를 사용하는 TreeSet 이 좋은 선택입니다. 속도는 전자가 빠르고 메모리 사용량은 후자가 적습니다. 관심있는 정수의 범위가 작다면 지금처럼 boolean 배열을 사용하시는 것이 좋겠지만 그렇지 않다면 상당한 메모리를 낭비하게됩니다.
-----------------------------------
앗, 글을 적는 사이에 이미 답글을 다셨네요 ^^;
정수의 범위의
정수의 범위의 크기가 9~25 정도라서 메모리 걱정은 없습니다. 그런데 HashSet에서 contains 함수는 상수 시간 소모인가요?
넵. 상수 시간입니다.
넵. 상수 시간입니다.
댓글 달기