-
210820_Hashset+IteratorJAVA 2021. 8. 20. 14:35
//컬렉션: 자료구조(set,vector,arrayList) <자료형>
//제네릭: 명시한 자료를 구현한 것, 컬렉션과 거의 동일하게 봄
//(인터페이스명 or 클래스명) <데이터형자료이름> 객체이름 = new 클래스명 <데이터형자료이름>
//컬렉션과 배열의 차이: 컬렉션은 복수자료형 저장 가능하며 크기가 가변적(배열은 정반대이며 안정성이 떨어짐)
//List: 순서가 중요할 때, 중복가능
//Set: 유일성이 중요할 때(중복 불가능), 순서는 안 지켜짐 (list 정반대)
//Map: key값으로 value값을 찾을 때
(예제1)
public class HashSetEx05 {
public static void main(String[] args) {
Set<String>set1=new HashSet<String>(); //string을 넣으면 다른 건 안 되고 string만 가능해짐
//HashSet<String>set1=new HashSet<String>(); 이렇게도 가능
//set안에 string 데이터만 담겠다..set은 인터페이스이므로
set1.add("사과");
set1.add("바나나");
set1.add("사과"); //중복은 포함하지 않음
set1.add("딸기");
set1.add("키위");
set1.add("포도");
System.out.println("데이터 개수: "+set1.size());
System.out.println("#출력1"); //단순출력
for(String s:set1)
System.out.println(s);
//꺼내서 출력하는 인터페이스 Iterator
//컬렉션 인터페이스에 정의된 메서드,List,Set도 포함
//Iterator를 얻은 다음에 반복문,while 돌려서 읽어온다
System.out.println("#출력2");
Iterator<String> iter=set1.iterator();
while(iter.hasNext()) // 데이터가 더이상 없으면 false
{
String s=iter.next(); //마지막 요소까지 다음값 돌려줌
System.out.println(s); //다음으로 이동함과 동시에 데이터변환
}
System.out.println("#출력3");
Object[]ob=set1.toArray();
for(int i=0;i<ob.length;i++)
{
System.out.println(ob[i]);
}
//모든 데이터 삭제
set1.clear();
if(set1.isEmpty())
System.out.println("set타입 안에 데이터 없다");
else
System.out.println("set타입 안에 데이터 있다");
}
}
//결과
데이터 개수: 5
#출력1
포도
사과
키위
바나나
딸기
#출력2
포도
사과
키위
바나나
딸기
#출력3
포도
사과
키위
바나나
딸기
set타입 안에 데이터 없다
~~~~~~~~~~~~~~~~~~~~
(예제2)
Set<Integer>set1=new HashSet<Integer>();
set1.add(3);
set1.add(11);
set1.add(7);
set1.add(5);
set1.add(29);
System.out.println("set1의 개수: "+set1.size());
System.out.println("#1. 출력");
for(Integer s:set1)
System.out.printf("%5d",s); //%5d: 5칸 띄우기
System.out.println("\n#2. 출력");
Iterator<Integer>a=set1.iterator();
while(a.hasNext())
{
Integer s=a.next();
System.out.printf("%5d",s);
}
System.out.println("\n#3. 출력");
Object[]ob=set1.toArray();
for(int i=0;i<ob.length;i++)
System.out.printf("%5d",ob[i]);
//결과
set1의 개수: 5
#1. 출력
3 5 7 11 29
#2. 출력
3 5 7 11 29
#3. 출력
3 5 7 11 29
'JAVA' 카테고리의 다른 글
210820_List+Vector (0) 2021.08.20 210820_Hashset+random (0) 2021.08.20 210820_filereader+filewriter+scanner (0) 2021.08.20 210820_FileWriter+scanner (0) 2021.08.20 210819_date format (0) 2021.08.19