본문 바로가기

[JAVA]

[JAVA]9월 25일 제네릭, 컬렉션,

*제네릭 : 일반적인 하나의 코드로 다양한 자료형을 처리하는 기법

일반적인 코드를 작성하고 이코드를 다양한 타입의 객체에 대하여 재사용 하는 프로그래밍 기법.

ex)

//class Store<T>

//{

// private T data;

// public void setData(T data)

// {this.data = data;}

// public T getData()

// {return data;}

public class Test {


public static void main(String[] args) {

// FIXME Auto-generated method stub

// Store<String> store = new Store<String>();

// store.setData("Hello");

// System.out.println(store.getData());

// Store<Integer> intstore = new Store<Integer>();

// intstore.setData(10);

// System.out.println(intstore.getData());



*컬렉션

자료구조로는 리스트 - 순서가 있는 데이터들의 집합.

ArrayList - 각데이터에 인덱스를 가지고 있기때문에 접근이 쉬움.

LinkedList - 삽입 / 삭제에 용이하다.

스택(stack), 큐(queue) - 리스트인데 삽입삭제에 규칙이 있는놈들.

스택: LIFO 큐 : FIFO

집합(set) - 순서가 없는 데이터 집합(중복X).

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

list.add("Milk");

list.add("Bread");

list.add("BUTTER");

list.add(1, "APPLE");  //인덱스 1에 APPLE삽입.

list.add(2, "GRAPE"); //인덱스 2에 원소를 GRAPE로 대체.

list.remove(3);        //인덱스 3의 원소를 삭제 한다.


*set 

ex)Set<String> s1 = new HashSet<String>();

Set<String> s2 = new HashSet<String>();

s1.add("A");

s1.add("B");

s1.add("C");

s2.add("A");

s2.add("D");

Set<String> union = new HashSet<String>(s1);

union.addAll(s2);

Set<String> intersection = new HashSet<String>(s1);

intersection.retainAll(s2);

System.out.println("합집합 : " + union);

System.out.println("교집합 : " + intersection);

출력값 : 합집합 : [A, B, C, D]

          교집합 : [A]