본문 바로가기
Study/Java Study

자바스터디 7주차 (2)

by hongchii 2021. 6. 23.
728x90
반응형

2021.06.22 - [Study/Java Study] - 자바스터디 7주차 (1)

 

자바스터디 7주차 (1)

2021.06.19 - [Study/Java Study] - 자바스터디 6주차 (2) 자바스터디 6주차 (2) 2021.06.15 - [Study/Java Study] - 자바스터디 6주차 (1) 자바스터디 6주차 (1) 2021.06.13 - [Study/Java Study] - 자바스터디 5..

hong-chii.tistory.com

 

 

1. 컬렉션 프레임웍

컬렉션 프레임웍이란, '데이터 군을 저장하는 클래스들을 표준화한 설계'를 뜻한다.

 

1.1 컬렉션 프레임웍의 핵심 인터페이스

인터페이스 특징
List 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다.
예) 대기자 명단
구현클래스 : ArrayList, LinkedList, Stack, Vector 등
Set 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다. 
예) 양의 정수집합, 소수의 집합
구현클래스 : HashSet, TreeSet 등
Map 키(Key)와 값(Value)의 쌍(pair)으로 이루어진 데이터의 집합 
순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.
예) 우편번호, 지역번호(전화번호)
구현클래스 : HashMap, TreeMap, Hashtable, Properties 등

 

1.2 ArrayList

데이터의 저장순서가 유지되고 중복을 허용한다.

package Ch11;

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListEx1 {

	public static void main(String[] args) {
		ArrayList list1 = new ArrayList(10);
		list1.add(new Integer(5));
		list1.add(new Integer(4));
		list1.add(new Integer(2));
		list1.add(new Integer(0));
		list1.add(new Integer(1));
		list1.add(new Integer(3));
		
		ArrayList list2 = new ArrayList(list1.subList(1,4));
		print(list1, list2);
		
		Collections.sort(list1);
		Collections.sort(list2);
		print(list1, list2);
		
		System.out.println("list1.containsAll(list2):" + list1.containsAll(list1));
		
		list2.add("B");
		list2.add("C");
		
		list2.add(3, "A");
		print(list1, list2);
		
		list2.set(3,  "AA");
		print(list1, list2);
		
		System.out.println("list1.retainAll(list2) :" + list1.retainAll(list2));
		print(list1, list2);
		
		for(int i = list2.size()-1; i >= 0; i--) {
			if(list1.contains(list2.get(i))){
				list2.remove(i);
			}
		}
		print(list1, list2);
	}

	static void print(ArrayList list1, ArrayList list2) {
		System.out.println("list1:" + list1);
		System.out.println("list2:" + list2);
		System.out.println();
	}

}

 

1.3 LinkedList

링크드리스트는 불연속적으로 존재하는 데이터를 서로 연결한 형태로 구성되어있다.

 

 

1.4 Stack과 Queue

스택은 마지막에 저장한 데이터를 가장 먼저 꺼내게되는 LIFO(Last In First Out)구조 

큐는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In First Out)구조

 

 

https://github.com/hongchii/Study_Java/tree/master/src/Ch11

 

hongchii/Study_Java

자바의 정석 예제 및 인프런 Java TPC. Contribute to hongchii/Study_Java development by creating an account on GitHub.

github.com

 

자바의 정석을 토대로 공부 후 정리한 내용입니다.

728x90
반응형

'Study > Java Study' 카테고리의 다른 글

자바스터디 8주차 (2)  (0) 2021.07.04
자바스터디 8주차 (1)  (0) 2021.06.28
자바스터디 7주차 (1)  (0) 2021.06.22
자바스터디 6주차 (2)  (0) 2021.06.19
자바스터디 6주차 (1)  (0) 2021.06.15

댓글