자바의 List, Map, Set

두부링·2024년 12월 23일

java

목록 보기
8/13
post-thumbnail

git

  1. git restore .
    모든 변경 사항이 사라짐(복구 불가)
    untracked file의 변경사항은 돌아가지 않음
  2. git clean -fd
    사진 안 찍힉 파일(untracked file)도 모두 삭제
  • file과 directory 모두 삭제

    작업 중 untracked file 과 modified file을 삭제하고 싶을 때

  1. git reset --hard HEAD~
  • git hub에 올라간 것은 reset 하는 게 아니다!
  • 아직 올리지 않았으면 reset으로 한다. <reset 강도 조절>
    hard : commit +add + 모든 변경사항도 취소 : working tree clean
    mixed : commit + add도 취소 (default)
    soft : commit만 취소로 add된 상태로 나옴:commit 메세지 수정, 파일을 하나 누락하고 commit 한 경우에 많이 사용

    오타가 있으면 mixed 상태로 reset하는 게 일반적

  1. git reflog
  • commit 의 이력이 나와서 id로 그때의 커밋으로 돌아갈 수 있음

vscode 에서 git 올리기

  • main 으로 나옴(=master)

git stash -u

  • untracked file(commit 이 안된 파일)도 임시 저장됨
  1. git stash list : stash 된 목록을 볼 수 있음
  2. git stash pop : 임시 저장된 걸 지우면서 갖고오기

java

**List => ArrayList : 배열
Map => HashMap : object
Set=> HashSet : 집합

**

보완 필요함 : 12-MainClass03-04

Arraylist와 forEach()메서드

  • forEach()는 ArrayList 객체의 메소드에 해당함
  • forEach()에서 accet()이라는 메서드를 가져와서
    <화살표 함수>
ArrayList 객체.forEach((ArrayList 안에 있는 객체)->{
			//실행한 메서드 입력하기
            ArrayList 안에 있는 객체.drive();
            
		});
        
리스트.forEach(요소를_받아_처리하는_동작);

forEach()의 메서드를 호출하면 Consumer type 객체를 전달하면
전달된 객체의 내장된 accept() 메서드를 호출하면서
우리는 원하는 동작만을 정의하면 된다!

=> forEach()의 내장된 accetp()메서드를 정의하고 사용하는 것

List 인터페이스

  • Arraylist 객체를 List type으로 많이 받음 <- List 메서드를 많이 사용하기에

<List 형태>
List a = new ArrayList<>();

ArrayList 객체는 List type으로 받자!

String 클래스의 format()이라는 static 메소드

  • Object... : 어떤 타입이든지 몆 개가 오든지 상관없음

결과를 깔끔하게 문자열이랑 같이 출력할 때 사용하자!

Dto

  • Data Transfer Object 의 약자이다
    <작성규칙>
    1. 디폴트 생성자가 반드시 있어야 한다.
    2. 필드는 접근지정자가 private 로 되어 있어야 한다.
    3. 필드의 접근 메소드 setter,getter 메소드가 있어야 한다.

      전체적인 틀 한번 확인하고 눈에 익히자!

<이클립스 generate 사용하기>

Dto는 왜 사용하는가?
Dto= 데이터를 담는 상자
원하고 필요한 데이터만을 담아서 전달됨

String... msgs

  • 매개 변수에 전달할 String type 의 갯수는 유동적
  • String ...의 type은 String array type 이다

String array type이니 인덱스로 뽑는 거 가능함

HashMap

  • key generic : String , Value generic : Object
  • javascript 의 object 과 매우 비슷함
  • Map type의 인터페이스 타입으로 많이 받음
HashMap<ket generic, value generic>

.put(key, value)
.put(key, value)
.
.
.

<HashMap 예시>

자바스크립트의 {
번호: 1,
이름:"김구라",
주소:"노량진"
}

리스트에 map이 들어있는 형태

12-MainClass09

javascript 에서의 이런 형태랑 비슷함
[{num:1, name: "xx", addr:"xx"},{ },{ }]

HashSet

  • 집합의 개념으로 사용하고자 한다
  • 순서, key이 없으며 중복은 허용하지 않는다.
  • 중복을 제거할 때 많이 사용한다
  • forEach를 사용하여 원하는 값 출력하기

=> 중복을 허용하지 않기에 10,20,30이 나옴

List.of , Map.of

  • read only로 사용!
  • 아이템 추가, 삭제 , 수정이 불가능

중복이 제거된 Set를 ArrayList 객체에 담기

  1. 1차로 Set에 담아서 중복 제거하기
  2. Set을 Arraylist 객체의 생성자에 담기
  3. Collections.sort(리스트 객체)를 사용해서 정렬하기
    *내림차순 : Collections.sort(list, Collections.reverseOrder());

Set에 담아서 중복 제거하기 -> ArrayList 객체의 생성자에 담기(= 요소가 List에 담아짐)

QuizMain1-2

  • 중복이 제거된 Set를 ArrayList 객체에 담기

<질문>
git reset --hard ORIG_HEAD~
: 가장 최근의 HEAD 로 돌아감

HashMap 이 dto 클래스 대신 사용한다는 말이 무엇?

12-Main10

profile
하이하잉

0개의 댓글