본문 바로가기
IT/JAVA

[Java] JCF(Java Collection Framework) - Collection / Map

by 행복한 용용이 2020. 10. 16.
반응형

**JCF (Java Collection Framework)

Interface Class
- Collection - List : 순서 유지 / 중복data 가능 / ex)게시판 - ArrayList
- Vector
- Set : 순서유지X / 중복data 불가능(중복되면 덮어씀)
/ ex)장바구니
- HashSet
- Map

- Hashtable
- Properties

 

>배열이랑 비슷함. 배열의 단점 : 크기를 바꿀 수 없다.

>>JCF는 크기가 유동적이다.

 

 

List와 Set

 

 

    package com.kitri.util.jcf;

    import java.util.*;

    public class CollectionTest {

        public static void main(String[] args) {

    //         Collection coll = new ArrayList();

               Collection coll = new HashSet();

               System.out.println("초기 크기 : "+ coll.size());

               coll.add("홍길동");

               coll.add("이순신");

               coll.add("강감찬");

               coll.add("윤봉길");

    //        coll.add(new Integer(10));

    //       쓸때는 오류 안나지만 불러올 때 Int를 String으로 바꾸지 못함으로 오류.

    //       서로다른 DT을 넣는것은 필요가 없음

 

              System.out.println("마지막 크기 : "+ coll.size());

    //       크기가 유동적으로 바뀜

              Object ob[] = coll.toArray()//String 불가 get없음

              int len = ob.length;

              for(int i=0;i<len; i++) {

                  System.out.println((String) ob[i]);

              }   //Arraylist를 참조하면 때문에 순서가 그대로 나온다.

               //HashSet을 참조하면 순서가 바뀌어서 나온다.

        }

    }

 


 

List

 

 

    package com.kitri.util.jcf;

 

 

    import java.util.ArrayList;

    import java.util.List;

 

 

    public class ListTest {

        public static void main(String[] args) {

            List<String> list = new ArrayList<String>();

            System.out.println("list size ==" + list.size());

            list.add("허경민");

            list.add("정수빈");

            list.add("박건우");

            list.add("김재환");

            System.out.println("list size ==" + list.size());

 

            System.out.println("--- 두산의 타순 ---");

//          String str[] = list.toArray(new String[0]);

//          int len = list.size();

//          for (int i = 0; i < len; i++) {

//              System.out.println(i+1+"번 타자 : "+str[i]);

//         }

 

            int size = list.size();

            for (int i = 0; i < size; i++) {   //list는 get을 이용해서 i번째를 뽑을 수 있다.

                System.out.println(i+1+"번 타자 : "+list.get(i));

            }

 

            String name ="정수빈";

//             int im = list.indexOf(name);

//             indexOf로 특정Object가 몇번째 있는지 찾을 수 있다. DTO 환경에서는 쓸 수없다.

//             System.out.println(name + "은 "+(im+1)+"번 타자입니다.");

            for(int i=0;i<size;i++) {

                if(list.get(i).equals(name)) {

                    System.out.println(name + "은 "+(i+1)+"번 타자입니다.");

                    break;

                }

            }

 

            String name2 ="오재원";

//             list.set(im, name2);

//            set으로 i번째 있는 element를 다른 것으로 바꿀 수 있다.

           System.out.println(name + "을 "+name2+"로 교체");

//             for (int i = 0; i < size; i++) {

//                 System.out.println(i+1+"번 타자 : "+list.get(i));

//            }

            for(int i=0;i<size;i++) {

                if(list.get(i).equals(name)) {

                    list.set(i, name2);

                    System.out.println(i+1+"번 타자 : "+list.get(i));

                    break;

                    }

                }

            }

    }

 


 

Set

 

 

    package com.kitri.util.jcf;

    import java.util.*;

    public class SetTest {

        public static void main(String[] args) {

            Set<String> set = new HashSet<String>()//<>안에 Type 지정

            set.add("황선혜");

            set.add("박미래");

            set.add("이혜린");

            set.add("조윤영");

            set.add("박미래")

//         같은것을 썻기 때문에 덮어써짐. 따라서 set.size = 4

            System.out.println("set의 크기 : "+set.size());

 

//        .toArray() : Object 배열 안에 넣고 String으로 형변환

            Object ob[] = set.toArray();

            int len = ob.length;

            for(int i=0;i<len;i++) {

                System.out.println((String) ob[i]);

            }

            System.out.println("----------------------------------");

//        .toArray(T[] a) : 한번에 type 지정할 수 있다. size는 0으로 하면 알아서 만들어줌

            String str[] = set.toArray(new String[0]);

            for(int i=0;i<len;i++) {

                System.out.println(str[i]);

            }

            System.out.println("----------------------------------");

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

            for(int i=0;i<len;i++) {

                System.out.println(iterate.next());

            }

            System.out.println("----------------------------------");

            while(iterate.hasNext()) {

                System.out.println(iterate.next());

            }

        }

    }

 

[출처] 빡쏘끼룩

 

반응형