[TIL #11] Java 새로 배운 것들 - 변수의 종류, Collection

2024. 11. 11. 19:45·개발/내일배움캠프 TIL

[기본형 변수 vs 참조형 변수]

  1. 기본형 변수는 '소문자로 시작함' 반면, 참조형 변수는 '대문자로 시작함'
    # Wrapper class에서 기본형 변수를 감싸줄 때(boxing),int -> Integer
  2. 기본형 변수는 값 자체를 저장, 참조형 변수는 별도의 공간에 값을 저장 후 그 주소를 저장함(= 주소형 변수)

char 보다 String 을 훨씬 더 많이 사용, Wrapper class도 상당히 비슷

 

이유는?

기본형 변수가 가지고 있는 기능이 제한적, 다양한 기능을 제공하는 Wrapper로 감싸서, 추가기능을 더 함

 

Collection - List

Java에서 배열을 더 고도화 시켜 Collection 이라는 이름으로 자료구조를 다룰 수 있는 기능을 제공하는 데 그것을 알아보았다.

 

  • ArrayList - 순서가 있는 데이터 집합이며, 길이없이 만들 수 있는 동적배열
  • LinkedList - 기본적으로는 Array와 같은 기능을 하지만 메모리에 남는 공간에 요청을 해 여기저기 나누어 실제 값을 넣는다.
  • Set - 순서가 보장되지 않는 대신 중복을 허용하지 않음
  • Queue - 들어온 순서대로 나가는 First-In-First-Out 구조
  • Stack - 마지막에 들어온 것이 처음으로 나가는 Last-In-First-Out 구조
  • Map - Key 와 Value 값 형태로 이루어진 데이터 구조

Collection 들의 장단점을 정리해보았다. 이걸 항상 기억해두고 자료구조를 만들 때 어떤 것이 적합할 지 연습이 많이 필요할 것 같다.

자료구조 특징 장점 단점
ArrayList 동적 배열 빠른 조회 중간 추가 / 삭제 느림
LinkedList 동적 배열 빠른 추가 / 삭제 느린 조회
Set 중복이 없음 중복 방지 순서가 랜덤
Queue 선입선출 (FIFO) 순서대로 처리 중간 데이터 접근 어려움
Stack 후입선출 (LIFO) 역순 처리 중간 데이터 접근 어려움
Map 키-값 데이터 구조 유일한 키값으로 관리 용이
빠른 조회
키-값 관계를 명확하게 해줘야 됌

 

사용할 수 있는 함수가 굉장히 많지만 필요하면 나중에 찾아보고 자주 쓸 것 같은 함수 리스트는 정리해봤다.

자료구조      
ArrayList size(): 길이 확인
isEmpty(): 비어있는지 확인
clear: 모든 요소 제거
add(): 요소를 리스트 끝에 추가
remove(): 요소를 제거
get(): 인덱스 요소 반환
contains(): 요소가 있는지 확인
set(index, 요소): 요소 수정
add(Index, 요소)
LinkedList  
Set  
Queue add()
remove()
peek(): 첫 번째 요소를 반환
poll(): 첫 번째 요소를 반환하고 제거
Stack   push(): 맨 위에 요소 추가
pop(): 맨 위 요소를 반환하고 제거
peek(): 맨 위 요소를 반환
Map get(key)
remove(key)
put(key, value): 키-값 추가
keySet(): 모든 키를 반환
values(): 모든 값을 반환

 

'개발 > 내일배움캠프 TIL' 카테고리의 다른 글

[TIL #13] Enum 타입 적용한 계산기 트러블 슈팅 2  (0) 2024.11.14
[TIL #12] 클래스를 적용한 계산기 트러블 슈팅 및 해결 1  (2) 2024.11.12
[TIL #10] 향상된 for문  (0) 2024.11.11
[TIL #8] 1주차 미니 프로젝트를 마치며  (0) 2024.11.08
[TIL #7] Java에 대해 알아보기  (0) 2024.11.06
'개발/내일배움캠프 TIL' 카테고리의 다른 글
  • [TIL #13] Enum 타입 적용한 계산기 트러블 슈팅 2
  • [TIL #12] 클래스를 적용한 계산기 트러블 슈팅 및 해결 1
  • [TIL #10] 향상된 for문
  • [TIL #8] 1주차 미니 프로젝트를 마치며
BigChoi93
BigChoi93
이곳은 저의 성장과정과 개인적인 생각을 담기 위한 공간입니다.
  • BigChoi93
    Donologue
    BigChoi93
  • 전체
    오늘
    어제
    • 분류 전체보기 (61)
      • 개발 (53)
        • Javascript (2)
        • 내일배움캠프 TIL (41)
        • 개발일기 (4)
        • Java (2)
        • Spring (1)
        • Sql (1)
      • 일상 (0)
      • 사진 (1)
        • 포토샵 (1)
  • hELLO· Designed By정상우.v4.10.1
BigChoi93
[TIL #11] Java 새로 배운 것들 - 변수의 종류, Collection
상단으로

티스토리툴바