티스토리 뷰

LANGUAGE/JAVA

[JAVA] Collection, 제네릭

찰떡쿠키부스트 2017. 11. 15. 10:37

 

 

java.util.Colletion<E>   -인터페이스

<E> : 제너릭타입
<>안에는 참조형 타입만 들어갈 수 있다.(ex int 안됨 Integer 됨)
객체생성하면 다른<E> 안의 값도 객체생성할때 정한 타입으로 바뀜. 
------------------------------------------------


****Set****

java.util.Set<E> // extends Colletion -컬렉션에 상속된 인터페이스
java.util.HashSet<E> // implement  Set<E> - set을 상속한 클래스

Set(주머니) - 순서 x ,중복데이터 x
--> Set은 인터페이스이기 때문에 객체생성이 안됨.그래서 여러종류의 상속받은 구현클래스를 이용
그 중에 자주쓰는게 HashSet<E>
HashSet   --> add메서드
 
 ex)
import java.util.*; //페키지 데꼬와
class A{
 public static void main(String[] args){
 HashSet<String> set=new HashSet<Integer>();
//  제너릭 HashSet클래스의 객체생성
// (Set은 인터페이스라서 객체생성못해서 얘씀(얘말고 몇명더있음,얘를자주씀))
 set.add("aa");         
 set.add("bb");
 set.add("cc");
// add메서드호출 (클래스 HashSet에있는 메서드.public boolean add(E e))
 System.out.println(set);      
 }
}
--------------------------------------------------


****List****

 

java.util.List<E> // extends Colletion - 컬렉션에 상속된 인터페이스
java.util.ArrayList<E> // implement  List<E> - List를 상속한 클래스

List(배열) -
--> List는 인터페이스이기 때문에 객체생성이 안됨.그래서 여러종류의 상속받은 구현클래스를 이용
그 중에 자주쓰는게 ArrayList<E>
ArrayList --> add메서드,get메서드

 ex)
import java.util.*;
class Member{
 String id; int pw;
 Member(String id, int pw){
 this.id=id; this.pw=pw;}
}
class A{
 public static void main(String[] args){
 Member m1=new Member("aa",111);
 Member m2=new Member("bb",222);
 ArrayList<Member> list=new ArrayList<>();
 list.add(m1);list.add(m2);
 //add메서드호출 (클래스 ArrayList에있는 메서드.public boolean add(E e))
 System.out.println(list.get(0)); // m1의주소값
 System.out.println(list.get(1)); // m2의주소값
 System.out.println(list.get(2)); // Exception발생~
//get메서드호출 (클래스 ArrayList에있는 메서드.public E get(int index))
 }
}
----------------------------------------------------------


****Map****

 

java.util.map<K,V> -인터페이스
java.util.HashMap<K,V> // implements Map - Map을 상속한 클래스

Map(사전) - 키값 중복 x,벨류 중복 o
Map은 인터페이스이기 때문에 객체생성이 안됨.그래서 여러종류의 상속받은 구현클래스를 이용
그 중에 자주쓰는게 HashMap<K,V>
Map   --> put메서드,get메서드,containsKey메서드,keySet메서드


 ex) put메서드
import java.util.*;
class A{
 public static void main(String[] args){
  HashMap<String,Integer> map=new HashMap<>();
  map.put("aa",100);
  map.put("aa",200);
  map.put("aa",300);
  map.put("aa",400);
  System.out.println(map);
 }
}


 ex) containsKey메서드 : public boolean containsKey(Object key) :key값의 true/false 판별.
  if(map.containsKey(args[0])){
   ArrayList<Guest> list=map.get(args[0]);
   System.out.println("사람수:"+list.size());
  }else{
   System.out.println("해당방없음~");
  }


 ex) keySet메서드 : public Set<K> keySet() : key안의 값을 가져올때 사용.
  HashMap<String,ArrayList<Guest>> map=new HashMap<>();
  map.put("봄방",list1);
  map.put("여름방",list2);
  map.put("가을방",list3);
  System.out.println("::: 개설된방목록 :::"); 
  Set<String> set=map.keySet();  // map에 있는 key값을 가져옴.
  for(String key : set )
   System.out.println(key); // 확장for문을 통해 key값들을 출력

'LANGUAGE > JAVA' 카테고리의 다른 글

[JAVA] Object 객체  (0) 2017.11.15
[JAVA] String 객체  (0) 2017.11.15
[JAVA] DB연동  (0) 2017.11.15
[JAVA] Exception  (1) 2017.11.15
[JAVA] java.awt패키지 관련  (0) 2017.11.15
댓글