컬렉션 클래스중 Set인터페이스를 가진 HashSet에 대해 알아보도록 하자.
1. HashSet클래스란(각각의 요소를 관리 하는데 용이 하며 요소마다 중복이 허용되지 않고 요소의 순서가 보장되지 않는으며 요소 인덱스가 없다는 특징이 있다.)
메서드 정리
- contains 집합이 지정된 요소를 포함하고 있다면 true를 반환한다. (반환값 boolean)
- equals 지정된 객체가 리스트와 동일한지 비교한다. (객체를 비교하는 것이기때문에 사용자 클래스를 만든다면 equals,hashCode메서드를 오버라이드 해줘야 한다. wrapper클래스 및 String 는 객체의 값을 비교 되게끄름 미리 재정의 되어 있는 상태)
- hashcode hashcode()메소드(정확히 말하면, Object클래스의 hashcode메소드)
는 각 객체에 대응되는 고유한 정수값을 리턴한다는데 아직 hashcode메서드는 정확히 이해가 안가는 메서드 이다. (equals가 있는데 왜 hashcode가 있는지도 모르겠고.. ㅠ 해당 내용에 대해 더 찾아본후 다시 정리할 예정이다.)
2. HashMap클래스란(Map인터페이스의 한종류로 Key와 Value값 한쌍으로 이루어진 데이터를 저장하는 특징이 있으며 Set과 동일하게 요소 인덱스가 없어 아래와 같은 방법으로 Map을 탐색할 수 있다.(Set동일)) Key값은 중복이 허용되지 않고 중복되는 값 발생시 덮어 쓴다. value값은 중복이 허용 된다. ex)
map.put("호랑이" , "힘90")
map.put("여우" , "힘90")
map.put("호랑이" , "힘80")
Map을 탐색하기 위한 반복유형 대표적으로 아래 3가지 방법이 있다. ex)
Map<string, string> map = new HashMap<string, string>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
map.put("key4", "value4");
// Pattern 1 : entrySet을 이용한 Enhanced For-Loops
for( Map.Entry<string, string> elem : map.entrySet() ){
System.out.println( "key : " + elem.getKey() + ", value : " + elem.getValue()) );
}
// Pattern 2 : keySet을 이용한 Enhanced For-Loops (향상된 for문을 이용하면 가장 편리함)
for( String key : map.keySet() ){
System.out.println( "key : " + key + ", value : " + map.get(key)) );
}
// Pattern 3 : Iterator(접근자)를 이용한 While-Loops
Iterator keys = map.keySet().iterator();
while( keys.hasNext() ){
String key = keys.next(); System.out.println( "key : " + key + ", value : " + map.get(key)) );
}
}
메서드 정리
keySet,Value : HahspMap에 저장된 모든 키값 및 Value를 반환한다.
put : HashMap에 키와 값을 저장한다.
그 외 여러 메서드가 있으나 Java API 문서를 참고 하거나 구글링을 이용해 찾으면 될 것 같다.
가장 중요한건 HashSet,HaspMap의 특징과 이런 클래스가 있다는것만 알고 있으면 좋을것 같다.
'web_배우고익히고 > 4.JAVA' 카테고리의 다른 글
Java 에서 서블릿의 get post 방식의 차이 및 실제 구동 화면 (0) | 2020.01.22 |
---|---|
Java 에서 서블릿의( get post 방식) 사용법 with Tomcat (0) | 2020.01.22 |
컬렉션 프레임워크(With Array List) (0) | 2020.01.16 |
Wrapper class(With Boxing) (0) | 2020.01.16 |
Object클래스란 (0) | 2020.01.16 |