[14일차] 자바 - Collection

SOSO·2022년 5월 3일
0

학원

목록 보기
13/59
post-thumbnail

Collection


객체들을 한 곳에 모아 관리하고 또 그것을
편하게 사용하기 위해 제공되는 환경

ArrayList


리스트는 배열과는 달리 데이터의 검색과 추가, 삭제가 가능하다

public static void main(String[] args) {
		/*
		 *  제네릭 표현 : 객체를 생성할 때 객체에 저장할 수 있는 요소의 타입을
		 *  지정, 타입을 지정하면 다른타입의 요소는 저장할 수 없음
		 */
		ArrayList<String> list = new ArrayList<String>();
		list.add("서울"); // String-> Object
		list.add("부산"); // String-> Object
		list.add("광주"); // String-> Object
		// list.add(1000); //int -> Integer ->Object
		list.add("제주");

		// 반복문을 이용한 요소의 출력
		for (int i = 0; i < list.size(); i++) {
			String name = (String) list.get(i);
			System.out.println(name);
		}
		
		//확장 for문을 이용한 요소의 출력
		for(String name : list) {
			 System.out.println(name);
		}
	}

Stack

배낭에 물건을 넣을 때처럼 제일 마지막에 넣은 데이터부터 순서대로 꺼낼 수 있는 자료구조를 말한다


LIFO(Last-In First-Out)방식

public static void main(String[] args) {
		//stack : 후입선출 LIFO(Last-In First-Out) 방식
		
		Stack<String> st = new Stack<>();
		String[] array= {"진달래","백합","개나리","벚꽃","장미"};
		//반복문을 이용해서 데이터를 stack에 저장
		for(int i=0; i<array.length; i++) {
			st.push(array[i]);
		}
		
		//
		System.out.println(st);
		System.out.println("-----------------------");
		while(!st.isEmpty()) {
			System.out.print(st.pop()+"\t");
		}
		System.out.println(st);
	}

Queue

매표소에 줄을 서서 기다리는 사람들처럼 들어온 순서대로 데이터를 꺼낼 수 있는 자료구조


FIFO(First-In First-Out)방식

public static void main(String[] args) {
		//Queue : 선입선출 FIFO(First-In First-Out)의 자료구조
		String[] array= {"서울","대구","부산","광주","인천"};
		
		LinkedList<String> k =new LinkedList<>();
		
		for(int i=0; i<array.length; i++) {
			k.offer(array[i]);
		}
		System.out.println(k);
		
		while(k.peek() !=null) {
			System.out.println(k.poll());
		}
		
	}

Set

Set내에 저장되는 객체들은 특별한 기준에 맞춰서 정렬되지 않는다. 그리고 저장되는 객체들간의 중복된 요소가 발생하지 못하도록 내부적으로 관리된다

HashSet


public static void main(String[] args) {
		String[] array = {"Java","JSP","Java","Android"};
		
		HashSet<String> hs = new HashSet<>();
		for(String n : array) {
			hs.add(n);
		}
		//HashSet에 저장된 요소의 목록
		System.out.println(hs);
		System.out.println("------------------------------------");
		
		//Iterator를 이용한 요소의출력
		Iterator<String> ir = hs.iterator();
		while(ir.hasNext()) { //데이터가 있는지 검증
			System.out.println(ir.next()); //데이터 반환
		}
		System.out.println("------------------------------------");
		
		//확장 for문을 이용한 요소의 출력
		for(String str :hs) {
			System.out.println(str);
		}
	}
profile
한다 열심히

0개의 댓글