java

쉽지만 어려운 #Java #자바 #성공적 4.자료구조(리스트,스택,큐,해쉬테이블,집합)

sieunju 2016. 4. 30. 00:44
반응형

안녕하세요 j.sieun 입니다.


요번에 배우실 내용은 해쉬 셋과 테이블입니다. 


먼저 해쉬테이블을 먼저 보도록 하겠습니다. 


해쉬 테이블(hash table) :  여러개의 바구니를 만들어 두고 키 값을 이용하여 데이터를 넣을 바구니 번호를 계산하는 자료구조


를 말합니다. 


간단히 말해서 여러개의 이름들을 가나다 순으로 정렬해서 좀더 빠르게 원하는 이름을 찾는 것이라고 보시면 됩니다. 


생성하는 방법은 아래와 같습니다. 


HashMap<String,Integer> HM= new HashMap<String,Integer>();


앞에 있는 String 은 가나다 순을 뜻하고 Integer 은 그에 맞는 데이터 값을 뜻합니다. 


데이터를 삽입하는 방법은


HM.put("하이",13);


입니다. 그러면 "하이" 라는 바구니 안에 13이라는 값이 삽입이 됩니다. 


그럼 여기서 13의 값을 가져오고 싶다면


Integer num = HM.get("하이");


하면 num이란 값은 13이 됩니다. 


또한 삭제하는 방법은


HM.remove("하이");


가 되겠습니다. 


흠..솔직히 해쉬테이블은 딱히 사용을 잘안합니다. (제가 지금까지 프로그래밍 할때에는 아직까진...)


다음으로는 해쉬셋에 대해 알아보도록 하겠습니다. 


해쉬 셋이란 해쉬테이블은 만에 하나 데이터가 중복되는 경우가 있습니다. 하지만


해쉬 셋은 데이터를 중복저장하지 않는 점이 있습니다. 그래서 많이 사용합니다.


생성하는 방법은 아래와 같습니다. 


HashSet<String> set = new HashSet<String>();


가 되겠습니다. String 타입 파라미터같은 경우는 Integer 이든 char 이든 다 사용할수있습니다.


 추가 하는 방법으로는


set.add("하이");


입니다. 아주 간단합니다. 


그럼 아주 약간 심화학습으로.


import java.util.HashSet;

import java.util.Random;



public class structureClass {


public static void main(String[] args) {

// TODO Auto-generated method stub

HashSet<String> set = new HashSet<String>();

Random random = new Random();

for(int i = 0; i < 5; i++)

{

set.add(""+random.nextInt(10));

}

System.out.println(set);

}


}


이렇게 하면 set에 있는 결과값은 디버그 할때마다 다른값이 출력이 됩니다. 


그것도 중복이 되지 않는 숫자로 출력이 됩니다. 


랜덤함수를 사용할떄 중복제거 하고싶을때 set을 이용하면 좀더 편하게 중복 제거 할수있습니다. 


물론 해쉬셋을 사용안하고 중복제거하는 방법은 있습니다. 


그방법은 나중에 알려드리도록 하겠습니다. ㅎㅎ


출력하는 방법은 저렇게 System.out.println()을 사용해도 되고 좀더 구체적으로 출력하고싶다면


아래와 같이 적는 방법이 있습니다. 


Iterator <String> iterator = set.iterator();

while(iterator.hasNext()){

String str = iterator.next();

System.out.println(str);

}


왠만하면 이 방법을 사용하셔서 좀더 이 함수에 대해 이해를 해두시면 나중에 난이도 있는


프로그래밍을 하실때 도움이 됩니다. 


제거하는 방법은 


set.remove() 입니다. 별반 다를게 없습니다. 


그럼 지금까지 배운 것들을 활용해서 몇가지 문제를 다음시간에 가르쳐 드리겠습니다. 


감사합니다. 



※궁금하신거 댓글달아주시길 바랍니다. ㅎㅎ


퍼가시는건 상관 없는데 말은 하고 퍼가주시길 바랍니다.^^※



반응형