본문 바로가기

전체 글

(256)
HashMap2 // Hash Map : HashMap // Key : 무조건 String으로 생각하자!!! // Value : 내가 넣고싶은대로. HashMap map = new HashMap(); // 값을 넣을때 : key와 value로 넣는다! map.put("1111", 99); map.put("1111", 8); map.put("1113", 99); map.put("1114", 5); // 값을 추출할 때 : key로 값을 뽑는당 int v = map.get("1111"); System.out.println(v); // 출력 : 8 // Q. "1111"이 99랑 8이있는데 왜 8이 출력? // A. 값의 중복은 허락한다. 그러나, 덮어쓰기가 돼서 제일 마지막에 입력된값으로 출력되는거임 map.put("111..
HashMap // Hash Map : HashMap // Key : 무조건 String으로 생각하자!!! // Value : 내가 넣고싶은대로. ##HashMap: // - 해시 함수를 사용하여 각 키를 해시 코드로 변환하고, 이 해시 코드를 이용하여 데이터를 저장하고 검색함 // - 이를 통해 매우 빠른 검색 속도(O(1))를 제공할 수 있음 # 특징: // // 1. 키-값 쌍 (Key-Value Pair): HashMap은 키와 값의 쌍으로 데이터를 저장합니다. // --> 키(key)는 중복되지 않으며, 각 키에 대응하는 값(value)을 저장합니다. // // 2. 해시 함수 (Hash Function): 키를 해시 코드로 변환하는 함수 // --> 해시 맵 내부에서 데이터를 저장하고 검색할 때 사용됩니다...
Set # Binary Tree (숫자찾기 게임 생각하기 - 계속 중간값 부르지?) ## Set // - 중복된 요소를 허용하지 않고, 순서를 보장하지 않는 집합 // - 이는 자료의 고유성을 유지하고, 집합 연산(교집합, 합집합, 차집합 등)을 수행하기 위해 사용됨 // - ex) UpDown게임할때 중간값을 계속 부르지? // --> Binary Tree(Root가 제일 위에있고, 17을 부르면 왼쪽은 ~16 오른쪽은 18~ 이렇게 계속 뻗어나가) // # 특징(로또 추첨이랑 특징이 비슷하군): // // 1. 중복 요소 허용하지 않음: Set은 동일한 요소를 중복해서 저장하지 않습니다. // --> 따라서 Set 내에는 고유한 요소만 포함됩니다. // // 2. 순서를 보장하지 않음: Set은 요소의 저장..
Queue ## 큐(Queue): // - 데이터를 선입선출(FIFO, First-In-First-Out) 방식으로 저장하고 관리 // - 주로 데이터의 순서를 보존하고 처리할 때 사용되며, 다양한 응용 분야에서 유용하게 활용됨 // - 아메 주문을 받은데, 얼음을 주르륵 만들고... 이런게 아니라, "하나만들고 결제하고.. 하나만들고 결제하고..." // # 특징: // // 1. 선입선출 (FIFO): 가장 먼저 추가된 요소가 가장 먼저 제거됩니다. // 이러한 특성은 대기열(Queue)에서 요소를 처리하는 데 매우 유용합니다. // // 2. 요소 추가 및 제거: 주로 enqueue (요소 추가=add)와 dequeue (요소 제거=poll) 연산을 통해 데이터를 관리합니다. // // 3. 한쪽 끝에서 추가..
(collection framework의) Stack ## 스택(Stack) // - 데이터를 후입선출(LIFO, Last-In-First-Out) 방식으로 저장하고 관리 // - 주로 데이터의 역순으로 처리하는 상황에서 유용하게 사용됨 // - 보통 반복문을 돌리지는 않음 /# 특징: // // 1. 후입선출 (LIFO): // - 가장 마지막에 추가된 요소가 가장 먼저 제거됩니다. // - 이러한 특성은 주로 재귀 함수 호출, 뒤로가기 버튼, 실행 취소 기능 등과 같이 역순으로 처리해야 하는 상황에서 유용합니다. // // 2. 요소 추가 및 제거: 스택은 주로 push (요소 추가)와 pop (요소 제거) 연산을 통해 데이터를 관리합니다. // // 3. 한쪽 끝에서 추가 및 제거: 요소는 보통 스택의 한쪽 끝에서 추가되고 제거됩니다. // --> 마..
TypeCasting AAA a1 = new BBB();// 우리는 이렇게 쓸일이 거의 없다. 쓸 수는 있다고! a1.testA();// 출력 : A의 매서드 BBB b1 = (BBB)a1; // 원래는 BBB b = a; 이거안되는데, 강제로 type casting해준거임 // (부모의 참조변수를 가져올때는 댓가가 필요하다구.) // BBB b1 = new BBB();--> b1.testB();// 출력 : B의 매서드 b1.testA();// 출력 : A의 매서드 // BBB b1 = new BBB();와 BBB b2 = (BBB) a;의 경우 // 모두 BBB 클래스의 객체를 가리키는 것이므로 BBB 클래스의 모든 메서드와 속성을 호출할 수 있다! // --> BBB객체를 a1으로 받아서 다시 b1에 넘겨주는게 그냥 B..
Polymorphism package p7; public class Main_polymorphism { public static void main(String[] args) { // 다형성 : 참조변수는 본인의 타입을 포함해서 모든 자손을 받을 수 있다. // 1. 일반적인 경우 AAA a = new AAA(); a.printA(); BBB v1 = new BBB(); BBB v2 = null;// 참조 주소에 null을 넣을 수 있으니까는~ // BBB b2 = new AAA();--> 이건 당연히 안되겠지. type mismatch double d = 1;// 이것도 type mismatch인데, 자동으로 type casting이된거임. // 2. 다형성의 경우 AAA aaa; aaa = new AAA();// 당연히 되는..
Basic // 어떠한 직업군들에 대한 클래스를 여러개 생성한다 // 이름, 나이라는 인스턴스가 계속 공통적으로 들어가지 class Person{ String name; int age; } class Student extends Person{ // --> 상속하는 클래스와 같은명의 변수를 안써도됨! (쓰면 오히려 머리아파..) //String name; //int age; int score; } class PoliceMan extends Person{ //String name; //int age; String grade; } class Lecture{ String name; int age; int career; }