git
- git restore .
모든 변경 사항이 사라짐(복구 불가)
untracked file의 변경사항은 돌아가지 않음
- git clean -fd
사진 안 찍힉 파일(untracked file)도 모두 삭제
- file과 directory 모두 삭제
작업 중 untracked file 과 modified file을 삭제하고 싶을 때
- 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하는 게 일반적
- git reflog
- commit 의 이력이 나와서 id로 그때의 커밋으로 돌아갈 수 있음
vscode 에서 git 올리기
- main 으로 나옴(=master)

git stash -u
- untracked file(commit 이 안된 파일)도 임시 저장됨

- git stash list : stash 된 목록을 볼 수 있음
- 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으로 받자!

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

결과를 깔끔하게 문자열이랑 같이 출력할 때 사용하자!
Dto
- Data Transfer Object 의 약자이다
<작성규칙>
- 디폴트 생성자가 반드시 있어야 한다.
- 필드는 접근지정자가 private 로 되어 있어야 한다.
- 필드의 접근 메소드 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차로 Set에 담아서 중복 제거하기
- Set을 Arraylist 객체의 생성자에 담기
- Collections.sort(리스트 객체)를 사용해서 정렬하기
*내림차순 : Collections.sort(list, Collections.reverseOrder());

Set에 담아서 중복 제거하기 -> ArrayList 객체의 생성자에 담기(= 요소가 List에 담아짐)
QuizMain1-2
- 중복이 제거된 Set를 ArrayList 객체에 담기
<질문>
git reset --hard ORIG_HEAD~
: 가장 최근의 HEAD 로 돌아감
HashMap 이 dto 클래스 대신 사용한다는 말이 무엇?
12-Main10