MapleStory Cookie With Halo

☕ JAVA/☕ Variables & Data Type 30

[JAVA]enum

enum 열거형이름 {상수명1, 상수명2, ...}: 관련된 상수들을 순서대로 묶어놓은 열거형.   💡 원래 변수는 소문자로 시작하지만 enum은 타입처럼 사용하기 때문에 대문자로 시작한다.   각 요소는 객체이다.     특징  요소의 값이 같은 지 확인할 때에는 == 와 equals() 모두 사용할 수 있다.비교할 때에는 비교 연산자 >, 비교는 compareTo() 메서드를 사용해야 한다. (요소가 객체이므로)❗ d1.compareTo(d3) 결과가 -2인 이유는enum에서 { }안에 오른쪽에 선언된 요소의 순서가 더 크기 때문이다.{0, 1, 2, 3, ....} ❗ enum명은 어느 클래스든 중복되면 error발생. ( static 객체이기 때문에 )  switch()문에 사용할 경우   메서..

[JAVA]HashMap<key, value>

💡 HashtableHashMap의 구형버전이라고 보면 된다.거의 동일하나 차이점은 Hashtable은 동기화⭕, HashMap은 동기화❌라는 점이다.💡 TreeMap2024.11.25 - [☕ 자바 JAVA/☕ 변수와 자료형 Variables & Data Type] - [JAVA]TreeSetTreeSet과 동일하게 이진탐색트리를 이용한다.(TreeSet은 TreeMap을 가지고 만들어졌다.) 💡 LinkedHashMap순서를 유지하고자 할 때 사용한다.  HashMap: Map인터페이스의 대표적인 구현클래스.데이터를 key와 value 한쌍으로 저장하는 자료형.순서❌, (key 중복❌,  값 중복⭕)해싱Hashing기법을 이용하여 데이터를 저장한다.→ 데이터가 많아도 검색이 빠르다.💡 해싱 H..

[JAVA]TreeSet

TreeSet: Set인터페이스 중 탐색과 정렬에 유리한 구현클래스.중복❌이진 탐색 트리Binary search tree로 구현되었다.→ 장점 : 그래서 빠른 탐색이 빠르다.이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖는다.단점 : 데이터가 많아질 수록 추가/삭제에 (비교횟수증가로) 시간이 오래 걸린다.💡 이진 탐색 트리 Binary search tree부모보다 작은 값은 왼쪽에, 큰 값은 오른쪽에 저장한다.따라서 값이 추가/삭제 될 때마다 정렬을 다시 한다.노드를 이용한다는 점에서 LinkedList와 비슷하다.2024.11.19 - [☕ 자바 JAVA/☕ 변수와 자료형 Variables & Data Type] - [JAVA]LinkedList와 QueueLinkedList의 노드는 양옆에 노..

[JAVA]HashSet

HashSet: Set인터페이스의 가장 대표적인 구현클래스.순서❌중복❌보통 set을 사용한다하면 hashSet을 말한다.순서를 유지하려면, LinkecHashSet클래스를 사용하면 된다.  생성자첫번째처럼 그냥 생성할 수도 있고()안에 Collection객체를 넣어서 ArrayList→HashSet 타입변환하면서 만들 수도 있다.(용량, 몇 퍼센트 찼을 때 용량을 두배로 늘릴 지) 지정할 수도 잇다. add(추가 값)중복된 값들은 저장되지 않았다.→ false 반환.→ 난수(random값)를 저장하기 좋다.순서가 있는 듯이 보이지만)사실상 순서도 없다.→ 정렬sort 불가. 그 외 메서드addAll(Collection c)remove(Object o)→ 지우고자 하는 값을 () 안에 적으면 된다.remo..

[JAVA]연산자

연산에 사용되는 표시와 기호를 연산자.연산되는 데이터를 피연산자라고한다.  사칙연산자: 덧셈, 뺄셈, 곱셈, 나눗셈.  자바에서 사용하는 연산자 기호는 일반 수학에서 사용하는 표기와 다를 수 있습니다. example) 곱하기 연산은 자바에서 *로 표기합니다.  +  더하기 -   빼기 *   곱셈 /   나누기💡 코딩에서 %는 나머지를 뜻합니다.  대입연산자: 변수에 값을 대입한다.  +=-=*=/=%=코딩에서 변수i에 값을 더할 때 이런 식으로 i + 10 이라고 적지 않습니다.기능은 동일하지만 대입연산자를 사용하면 성능과 가독성이 올라가기 때문입니다. 나머지 % 란10을 7로 나눈 나머지 3이 나옵니다.  부호연산자 +와 -  부호연산자를 변수 앞에 붙인다.+연산자는 변수 값의 부호를 유지한다.-연..

[JAVA]Iterator, ListIterator, Enumeration

Enumeration : Iterator의 구버전입니다. Iterator: 각기 다른 구조를 가진 collection의 요소를 읽기위해 표준화한 것.hasNext(): 이터레이터에 다음 요소가 있는 지 확인 합니다. boolean 반환.next(): 다음 값을 가져옵니다.remove(): next() 다음에 적으면 해당 요소가 삭제됩니다.❗ 위 출력결과를 보시면 한번 읽어온 Iterator는 다시 순회할 수 없습니다. ListIterator: Iterator에 이전 값을 확인하는 메서드가 존재.   Collection이 바뀔 상황.ArrayList ↔ HashSet 으로 변경하는 상황에서 유리하다. 사실 실제로는 자주 사용하지 않습니다. 이유는일회용인데다가 List로 타입을 변환하려면 위와 같이 하나씩 ..

[JAVA]NaN과 Infinity

Infinity: 정수를 0.0으로 나눌 경우. 무한대의 숫자.0으로 나눌 때와의 차이0과 0.0으로 나눌 때 이러한 차이가 생기는 이유는 JAVA가 IEEE 754(부동 소수점 표준)을 따르기 때문입니다.이 표준은 수학적으로 무한대와 정의되지 않은 숫자를 허용합니다.0으로 나누는 것은 산술적으로 정의되지 않은 연산이기에 java.lang.ArithmeticException 예외가 발생합니다.  Double/Float.isInfinite(소수): infinity 다루기  NaN: Not a Number. 숫자가 아닌 값.자바에서 % 는 나머지를 구하는 연산자이기 때문에 0.0으로 나눌 시 NaN을 반환합니다.0으로 나눌 시에는 /나누기를 사용할 때와 마찬가지로 ArithmeticException예외가 발..

[JAVA]LinkedList와 Queue

Queue: FIFO 구조. 먼저 저장한 것을 먼저 꺼낸다.  LinkedList데이터들을 Node라는 곳에 담아 하나씩 기차처럼 연결한다.→ 노의의 위치를 연결된 양 옆의 노드들만 안다.데이터를 삭제할 때 배열처럼 덮어씌우는 게 아니라 연결만 바꾼다.추가할 때도 새로운 노드를 만들어 연결만 해주면 된다.※ 장점 : 새로운 데이터 추가/삭제가 빠르다.※ 단점 : 접근성. 데이터를 가져오는 속도가 느리다.따라서 중간에 값을 추가/삭제할 경우에는 LinkedList가 좋다. 그렇지 않은 경우 ArrayList가 좋다.  사용법은 ArrayList와 거의 일치합니다. ArrayList 메서드2024.11.19 - [☕ 자바 JAVA/☕ 변수와 자료형 Variables & Data Type] - [JAVA]Ar..

반응형