10일차 수업 ( 컬렉션/Hashset/ArrayList/제네릭 )

1. 컬렉션
데이터를 관리하는 여러 가지 저장 방식이 존재하며 이런 여러 가지 방식을 자바의
클래스로 구현한 것이 컬렉션.

    <<Collection>> 컬렉션의 최상위 클래스

   <<set>>    <<List>>      <<Map>>
Hashset     ArrayList     HashMap  
SortedSet    Vector


1) Hashset 사용해보기

import java.util.HashSet;;

public class Test {

public static void main(String[] args) {

HashSet set =new HashSet();

set.add("박보영");

set.add(new Integer(23));
set.add(new Float(3.14F));
set.add(234);
  
set.add("박보영");               // 중복 저장
set.add(new Integer(23));    // 중복 저장
set.add(new Float(3.14F));  // 중복 저장
set.add(234);                     // 중복 저장
  
System.out.println("출력 : " + set.toString());

 }

}

출력 : [234, 3.14, 23, 박보영]

==> set 계열의 특징은 데이터가 중복 저장이 안되며 저장되는 순서가 없다.
    즉 데이터 저장이 순서되로 되지 않는다.

 

2) ArrayList 사용해보기

import java.util.ArrayList;

public class Test {

 public static void main(String[] args) {
 ArrayList a = new ArrayList(); 
  a.add("박보영");
  a.add(new Integer(23));
  a.add(new Float(3.14F));
  a.add(234);
  
  a.add("박보영");             // 중복 저장
  a.add(new Integer(23));  // 중복 저장
  a.add(new Float(3.14F));  // 중복 저장
  a.add(234);                    // 중복 저장
  
  System.out.println("출력 : " + a.toString());
  
  for (int i = 0; i < a.size(); i++) {
  System.out.print(a.get(i)+", "); 
  }
 }

}


출력 : [박보영, 23, 3.14, 234, 박보영, 23, 3.14, 234]
박보영, 23, 3.14, 234, 박보영, 23, 3.14, 234,

=> list 는 데이터가 중복 저장이되며 저장은 입력순서되로 된다.


2. DTO 클래스
- 데이터를 효율적으로 전송 및 관리하기 위해서 사용되는 클래스를 의미한다.

 

3. 제네릭( generic )
- 데이터를 저장할 때 지정된 데이터형을 명시하기 때문에 가독성이 높다.
- 지정된 데이터형으로 형변환 할 필요가 없다.

<일반적으로 사용하는 방법>

ArrayList = list = new ArrayList();
==> 얻어 올 때 반드시 형변환 해야 된다.
==> 잘못된 데이터가 저장 될 수 있다.
 (실행시 파악할 수 있다. )

<Generic으로 사용하는 방법>

컬렉션 <저장 데이터형> 변수명 = new 컬렉션<저장 데이터형>();

==> 얻어 올 때 형변환 할 필요가 없다.
==> 잘못된 데이터를 컴파일 시점에 알 수 있다.

 

====수업 내용======

 

1. 컬렉션
데이터를 관리하는 여러 가지 저장 방ㅇ식이 존재하며 이런 여러 가지 방식을 자바의
클래스로 구현한 것이 컬렉션.

  <<Collection>> 컬렉션의 최상위 클래스

   <<set>>    <<List>>      <<Map>>
Hashset     ArrayList     HashMap  
SortedSet    Vector


1) Hashset 사용해보기

import java.util.HashSet;;

public class Test {

 public static void main(String[] args) {

  HashSet set =new HashSet();
  set.add("박보영");
  set.add(new Integer(23));
  set.add(new Float(3.14F));
  set.add(234);
  
  set.add("박보영");  // 중복 저장
  set.add(new Integer(23)); // 중복 저장
  set.add(new Float(3.14F));  // 중복 저장
  set.add(234);   // 중복 저장
  
  System.out.println("출력 : " + set.toString());
 }

}

출력 : [234, 3.14, 23, 박보영]

==> set 계열의 특징은 데이터가 중복 저장이 안되며 저장되는 순서가 없다.
    즉 데이터 저장이 순서되로 되지 않는다.

2) ArrayList 사용해보기

import java.util.ArrayList;

public class Test {

 public static void main(String[] args) {
  
  ArrayList a = new ArrayList();
  
  a.add("박보영");
  a.add(new Integer(23));
  a.add(new Float(3.14F));
  a.add(234);
  
  a.add("박보영");  // 중복 저장
  a.add(new Integer(23));  // 중복 저장
  a.add(new Float(3.14F));  // 중복 저장
  a.add(234);   // 중복 저장
  
  System.out.println("출력 : " + a.toString());
  
  for (int i = 0; i < a.size(); i++) {
  System.out.print(a.get(i)+", "); 
  }
 }

}


출력 : [박보영, 23, 3.14, 234, 박보영, 23, 3.14, 234]
박보영, 23, 3.14, 234, 박보영, 23, 3.14, 234,

=> 즉 list 는 데이터가 중복 저장이되며 저장은 입력순서되로 된다.


2. DTO 클래스
- 데이터를 효율적으로 전송 및 관리하기 위해서 사용되는 클래스를 의미한다.

3. 제네릭( generic )
- 데이터를 저장할 때 지정된 데이터형을 명시하기 때문에 가독성이 높다.
- 지정된 데이터형으로 형변환 할 필요가 없다.

<일반적으로 사용하는 방법>

ArrayList = list = new ArrayList();
==> 얻어 올 때 반드시 형변환 해야 된다.
==> 잘못된 데이터가 저장 될 수 있다.
 (실행시 파악할 수 있다. )

<Generic으로 사용하는 방법>

컬렉션 <저장 데이터형> 변수명 = new 컬렉션<저장 데이터형>();

==> 얻어 올 때 형변환 할 필요가 없다.
==> 잘못된 데이터를 컴파일 시점에 알 수 있다.

 

-----------------------------------------------------------------------


1. 다른 클래스에서 발생된 여러 데이터를 한꺼번에 가져오는 방법.

             b 메소드 호출
 A 클래스  --------------> B 클래스 ( 여러 데이터 발생 )
           <--------------     홍길동,20  이순신44  유관순 18
      결과값 리턴
결과값
보여주기

 ==> DTO 클래스 + ArrayList를 사용하면 된다.


 2. 일관된 방법으로 컬렉션에 저장된 데이터를 얻는 방법.


   - HashSet
      ==> toString()
      ==> 향상된 for 문
      ==> Iterator

   - ArrayList
       ==> 첨자이용 : get(index)
       ==> 향상된 for 문
        ==> Iterator

     -Vector
        ==> Iterator
 => Enumeration

    가. java.util.Enumeration ( 이뉴멀레이션 )
        :  hasMoreElements() : boolean
    nextElements() : Object

    나. java.util.Iterator  ( 이터레이터 )

        : hasNext() : boolean
   next() : Object
   remove()

==> 메소드를 이용해서 Iteraror, Enumeration 을 얻는다.
    (  new 하지 않는다. )


3.  Map 계열

 : 계층구조

      Object
         |
       <<Map>>
          |
    Hashmap , Hashtable, Properties

  : 특징
     ==> Set, List 계열은 데이터만 저장한다.
     Map 계열은  name/value(key/value) 쌍으로 저장한다.
    
     ==> 검색이 빠르다.
         name(key)을 이용해서  value를 바로 얻는다.

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,