버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (139)
    • 🏃‍♀️ Do it ! (80)
      • TIL (73)
      • Project (5)
      • Certificate (2)
    • 📓 TechNote (52)
      • RPA (1)
      • Python (2)
      • JAVA (13)
      • Spring (11)
      • SQL (7)
      • Git & GitHub (6)
      • CS (0)
      • HTML & CSS & JavaScript (2)
      • Tools (9)
      • API (1)
    • 🔔 Error (7)
      • Error (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 객체지향
  • 코틀린
  • 안드로이드
  • 게시판
  • 오라클
  • 톰캣
  • opacity
  • sqld
  • 포트폴리오
  • 변수
  • 문제풀이
  • 이클립스
  • 만들기
  • SQL
  • 홈페이지
  • 세션
  • dml
  • callback
  • foreach
  • 부트스트랩
  • 함수
  • final필드
  • 배열
  • 버블소트
  • 기본쿼리
  • 큐
  • 스프링
  • 이것이자바다
  • 스택
  • 데이터베이스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자

오늘도 내 하루는

Set 컬렉션 / Map 컬렉션 / 이진 트리 / 스택 & 큐
🏃‍♀️ Do it !/TIL

Set 컬렉션 / Map 컬렉션 / 이진 트리 / 스택 & 큐

2022. 9. 28. 17:00
728x90

2022 / 9 / 28 수

  • Set 컬렉션
  • Map 컬렉션
  • 이진 트리
  • 스택 & 큐

✔ Set 컬렉션

Set 컬렉션 

객체를 중복해서 저장할 수 없으며, 하나의 null만 저장이 가능하다. 

set 컬렉션은 마치 구슬 주머니와도 같다고 볼 수 있다.

동일한 구슬은 넣지 못하고, 넣는 순서와 나오는 순서가 다를 수 도 있기에 ~

 

Set 컬렉션에는 HashSet / LinkedHashSet / TreeSet 가 있다. 

 

HashSet

ArrayList를 생성하기 위해서는 다음과 같이 생성할 수 있다. 

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

<  > 안에 원하는 객체 타입을 타입 파라미터로 표기한다. 

ex) <String> / <Integer>


✔ Map 컬렉션

Map 컬렉션

키와 값으로 구성된 Entry 객체를 저장하는 구조를 갖는다.
키는 중복 저장을 할 수 없지만

값은 중복 저장이 가능하다 !

 

Map 컬렉션에선 HashMap / Hashtable / LinkedHashMap / Properties / TreeMap 가 있다.


HashMap

키 타입은 String을 많이 사용한다. 

Map < k , v > map = new HashMap < k, v > ( );

k 에는 키타입, v 에는 값타입을 넣어준다.

import java.util.HashMap;
import java.util.Map;

public class HashMapExample {

	public static void main(String[] args) {
		
		
		Map<String, Integer> map = new HashMap<String, Integer>();
		
		// 데이터저장
		map.put("감자깡", 85);
		map.put("새우깡", 125);
		map.put("고구마깡", 60);
		map.put("새우깡", 125); // 새우깡이라는 key가 중복되어 95가 저장되어있음.
		
		System.out.println("총 Entry 수 :" + map.size());
		
		// 데이터읽기(객체 찾기)
		System.out.println("\t새우깡:" + map.get("새우깡"));
		System.out.println();
		
	}

}

Hashtable

키 객체를 만드는 방법은 HashMap과 동일하다. 

Map < k , v > map = new HashMap < k, v > ( );

 

✨ Hashtable은 동기화된 메소드로 구성되어 있기 때문에 멀티 스레드가 동시에 메소드를 실행할 수 없고,

하나의 스레드가 실행을 완료해야만 다른 스레드를 실행 할 수 있다. 


Properties

Properties는 Hashtable의 하위 클래스로 Hashtable의 모든 특징을 갖는다. 

BUT !

Hashtable 와의 차이점은 키와 값을 String 타입으로 제한한 점이라는 것

 

✨프로그램의 옵션 정보, 데이터베이스 연결 정보, 국제화 정보가 저장된 프로퍼티파일을 읽을때 주로 사용된다. 

프로퍼티 파일이 뭐야? (~.properties) 

프로그램에서 주로 변경이 잦은 문자열을 저장하여 유지 보수를 편하게 만들어준다. 

 

키와 값이 = 기호로 연결되어 있는 텍스트 파일로 ISO 8859-1 문자셋으로 저장

한글은 유니코드로 변환되어 저장

예를들어 contry 와 language키로 각각 한국과 한글을 입력하면 자동으로 유니코드로 변환되어 저장 된다.


✔ 이진트리

이진 트리 구조란?

이진 트리는 여러개의 노드가 트리 형태로 연결된 구조로

루트 노드라고 불리는 하나의 노드에서 각 노드에 최대 2개의 노드를 연결할 수 있는 구조를 갖는다. 

 

✨ 트리는 부모 노드와 자식 노드로 구성되며

      왼쪽 자식노드는 부모보다 작은값을 오른쪽 자식 노드는 부모보다 큰 값을 갖는다. 

Ex ) 부모노드 A = 6 / 자식노드  B = 3 , C = 9

 

올림 차순 : 왼쪽 자식 노드 -> 부모 노드 -> 오른쪽 자식노드

내림 차순 : 오른쪽 자식 노드 -> 부모 노드 -> 왼쪽 자식노드


TreeSet

왼쪽과 오른쪽 자식 노드를 참조하기 위한 두개의 변수로 구성되어있다. 


 

TreeMap

키와 값이 저장된 Map.Entry를 저장한다. 

키 값이 낮은것은 왼쪽 자식노드, 키 값이 높은것은 오른쪽 자식노드에 Map.Entry 객체를 저장

 


✔ 스택 &  큐

스택 : 후입선출(LIFO: Last In First Out) 구조
큐 : 선입선출(FIFO: First In First Out) 구조
 

https://gogohh13.tistory.com/32

 

[D + 22] 스택 / 환영큐

2022/08/19 금 Stack Queue ✔️Stack 선입후출 형태의 자료구조 더보기 const max = 5; //데이터 개수의 최대치 const stack =[];  //스택 자료구조 let sp = 0; // stack pointer let count = 0;   // state..

gogohh13.tistory.com

 

'🏃‍♀️ Do it ! > TIL' 카테고리의 다른 글

람다식 / 클래스 멤버와 로컬 변수 사용 / 표준 API 함수적 인터페이스  (0) 2022.09.30
제네릭 / 멀티 타입 파라미터 / 제네릭 메소드 / 버블 소트  (0) 2022.09.30
스레드 그룹 / 스레드폴 / 컬렉션 프레임워크  (0) 2022.09.27
스레드 상태 / 데몬 스레드  (0) 2022.09.26
프로세스 / 스레드 / 동기화 메소드, 동기화 블록  (0) 2022.09.23
    '🏃‍♀️ Do it !/TIL' 카테고리의 다른 글
    • 람다식 / 클래스 멤버와 로컬 변수 사용 / 표준 API 함수적 인터페이스
    • 제네릭 / 멀티 타입 파라미터 / 제네릭 메소드 / 버블 소트
    • 스레드 그룹 / 스레드폴 / 컬렉션 프레임워크
    • 스레드 상태 / 데몬 스레드
    버터감자
    버터감자
    🌱 새싹 개발자의 코딩 블로그 🌱

    티스토리툴바