자료구조 API - Collection 프레임워크
[컬렉션프레임워크]
Collection(자료구조에 관련된 인터페이스)
|
|
List Set
| |
| |
ArrayList,Vector,... HashSet,TreeSet,...
* List계열의 클래스
- 값을 저장할 때 순서가 있다.
- 중복된 값을 저장할 수 있다.
* Set계열의 클래스
- 값을 저장할 때 순서가 없다.
- 중복된 값을 허용하지 않는다.
ex> 제너릭 사용/미사용 예
import java.util.HashSet;
import java.util.Iterator;
class Test05_Set{
public static void main(String[] args)
{
HashSet<String> hs=new HashSet<String>();
hs.add("봄");
hs.add("여름");
hs.add("가을");
hs.add("겨울");
hs.add(new String("여름"));
// 제네릭을 사용하지 않은 경우
//Iterator<E> iterator()
Iterator it=hs.iterator();
while(it.hasNext())
{
String st=(String)it.next();
System.out.println(st);
}
//제네릭을 사용한 경우
Iterator<String> it2=hs.iterator();
while(it2.hasNext())
{
String st=it2.next();
System.out.println(st);
}
}
}
ex>HashSet객체에 Member객체 3개를 담고 데이터를 모두 출력해 보세요.
import java.util.*;
class Member{
private String id;
private String pwd;
public Member(String id,String pwd)
{
this.id=id;
this.pwd=pwd;
}
public String getId()
{
return id;
}
public String getPwd()
{
return pwd;
}
//equals메소드 오버라이딩:두 객체의 id와 pwd가 일치하면 true리턴
public boolean equals(Object obj)
{
Member mm=(Member)obj;
if(id.equals(mm.getId()) && pwd.equals(mm.getPwd()))
{
return true;
}else
{
return false;
}
}
//hashCode메소드 오버라이딩:두객체의 문자열이 같으면 동일한 해쉬코드반환
public int hashCode()
{
return (id+pwd).hashCode();
}
}
//HashSet객체에 Member객체 3개를 담고 데이터를 모두 출력해 보세요.
class Test06_Set{
public static void main(String[] args)
{
HashSet<Member> hs=new HashSet<Member>();
hs.add(new Member("song","1234"));
hs.add(new Member("kim","5678"));
hs.add(new Member("lee","0000"));
hs.add(new Member("kim","5678"));
Iterator<Member> it=hs.iterator();
while(it.hasNext())
{
Member mem=it.next();
System.out.println(mem.getId() +","+ mem.getPwd());
}
}
}