ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 210820_Hashset+Iterator
    JAVA 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

    댓글

Designed by Tistory.