본문 바로가기

Java11

[면접을 위한 CS 전공지식 노트][자료구조] Hash Table 1. 해시 테이블이란? 해시 테이블은 데이터를 효율적으로 저장하고, 검색하기 위한 자료구조로 키(key)와 값(value)을 쌍으로 하여 데이터를 관리한다. 해시테이블은 해시 함수를 사용하여 키를 해시값으로 변환하고 이를 기반으로 저장할 배열의 인덱스를 결정하여 데이터를 저장하거나 검색한다. - 해시 테이블의 주요 특징 1) 해시 함수: 해시테이블은 해시 함수를 이용하여 키를 해시 값으로 변환한다. 해시 함수는 임의의 길이를 가진 데이터를 고정된 길이의 값으로 매핑하는 함수이다. 이 때 동일한 키는 항상 동일한 해시값으로 매핑되어야 한다. 해시 값은 배열의 인덱스와 연결되며, 이를 통해 데이터가 저장되거나 검색된다. 2) 해시 충돌: 해시 함수의 특성상 서로 다른 데이터가 같은 해시 값으로 매핑 될 수 .. 2023. 8. 11.
[면접을 위한 CS 전공지식 노트][자료구조] Set 1. Set이란? 자료구조인 SET은 수학에서의 집합을 구현해놓은 것이다. 집합은 중복되지 않는 원소들의 모임으로 수학적인 집합 개념을 컴퓨터 과학의 문제에 적용하기 위해서 만들어진 자료구조 이다. Set은 다음과 같은 특징을 가지고 있다. SET의 주요 특징 1) 고유한 원소: Set은 각 원소가 중복되지 않는다. Unique한 원소. 2) 순서 없음: Set에서는 원소의 순서를 보장하지 않는다. 순서가 없다. 3) 집합 연산: Set은 원소들 간의 합집합, 교집합, 차집합 등과 같은 집합연산을 지원한다. 2. JAVA에서의 Set 1) HashSet 가장 일반적으로 사용되는 Set 구현체 이며, 해시테이블을 기반으로 구현되어 있다. HashSet의 주요 특징 - 순서를 보장하지 않는다. - 추가, 삭.. 2023. 8. 11.
[면접을 위한 CS 전공지식 노트][자료구조] Map 0. 개요 이번 글에서는 키를 통해 검색할 경우에 자주쓰는 Map에 대해서 공부한 내용을 정리하고자 한다. 나 같은 경우에는 JAVA 코딩을 할 때에 map을 사용한다고 하면 HashMap만을 그냥 사용해왔는데, 공부해보니 그 외에도 코딩할 때 사용하면 유용할만한 자바에서 제공해주는 유용한 Map들이 존재했다. 이 글에서는 그것들에 대해서 기록해놓고 계속해서 볼 수 있도록 하려고 한다. 1. Map이란? 프로그래밍을 한번이라도 접해 본 사람이라면 각각의 언어마다 부르는 이름은 조금 다를 수도 있지만, Map 형식의 데이터를 이미 다뤄봤을 것이다. Python에서는 Dictionary라는 데이터타입으로 불리우기도 하고, API를 이용해본 사람들이라면 JSON(JavaScript Object Notation.. 2023. 8. 11.
[면접을 위한 CS 전공지식 노트][자료구조] Array(배열)와 ArrayList 0. 개요 JAVA에서는 배열을 직접 사용할 수도 있고, 배열을 사용하기 쉽게 구현해놓은 ArrayList가 존재한다. 자료구조를 공부하면서 이 부분에 대해서 정리하여 기록하고자 이 글을 작성한다. 1. Array 배열이라는 자료구조의 특징을 살펴보면, 1. 선형적인 자료구조이다. 2. 데이터를 일렬로 늘여놓은 형태이다. 3. 물리적으로도 데이터가 메모리에 연속적으로 저장된다는 특징을 가지고 있다. 4. 같은 데이터 타입만을 저장할 수 있다. -> 다른 데이터 타입을 저장하고자 한다면 class 선언을 하여 객체를 이용하여 사용할 수 있다. 등을 이야기 해볼 수 있겠다. Java를 이용해 프로그래밍을 하는 경우 종종 배열을 직접 사용하는 경우도 있지만, 대부분의 경우 배열을 사용하기 쉽게 구현해놓은 Ar.. 2023. 8. 2.
[JAVA][자료구조] JAVA Queue 사용법. 0. 개요 코딩테스트를 준비하면서 필요한 java 자료구조와 메서드에 대해서 정리하고자 이 글을 남긴다. 나 같은 경우에는 평소에 queue를 사용해본적이 거의 없기 때문에 어렴풋이 queue가 java에서는 인터페이스로 구현되어 있는다는 사실을 알고만 있을 뿐 이었다. 이번에 코딩테스트를 준비하면서 queue를 사용할만한 문제가 나와서 이번기회에 java에서 queue에 대한 메서드를 정리하고 이해하려고 이 글을 작성한다. 1. JAVA에서 구현된 queue 메서드 이 글을 읽는 분들은 큐라는 자료구조에 대해서 이해가 있을 것이라고 생각한다. 선입선출의 대표적인 자료구조로써 많은 곳에 사용된다. 자! 그럼 자바에서 queue는 어떻게 구현해놓았는지 살펴보자! 먼저 서두에서도 이야기 했듯이 자바에서는 큐.. 2023. 7. 16.
[JAVA] JAVA는 Call by Value일까요? Call by Reference 일까요? 오늘의 주제 JAVA는 Call by Value일까요? Call by Reference일까요? 결론 부터 말씀드리면 JAVA는 Call by Value방식입니다. 목차 0. 개요 1. Call by Reference는 무엇일까? 2. Call by Value는 무엇일까? 3. Call by Reference와 Call by Value는 뭐가 다르지? 4. JAVA는 Call by Reference일까? Call by Value일까? 5. 요약 및 정리 0. 개요 필자는 오늘 문득 친구에게서 JAVA는 Call by value일까? Call by reference일까? 질문을 받았어요. 질문을 받았을 때에는 JAVA는 두 가지 방법을 다 쓰는게 아닐까? 생각했어요. 그리고 지금까지는 그렇게 믿고 있었구요... 2023. 5. 28.
[JAVAFX] stage, scene, root container 정리(스테이지, 씬, 루트컨테이너) stage = 윈도우 화면 = 보여줄 창 전체를 말함. scene = 윈도우 화면 안에서 보여줄 하나의 장면, 윈도우는 한번에 하나의 scene만 보여 줄 수 있음. root container = 매우 중요 (BorderPane, HBox, VBox 등 레이아웃의 큰 틀. 즉 root.fxml의 레이아웃의 제일 큰 뼈대) control = 루트 컨테이너 안에 들어가는 여러가지 컨트롤 (VBox, Hbox, Button 등의 컨트롤 등 기능구현 가능한 모든 것들) JAVAFX에서는 프로그램적 레이아웃이 아닌 FXML 레이아웃을 사용함 그래서 대부분의 기능은 controller에서 구현하고, 레이아웃은 fxml파일에서 구현. 코드에서 루트컨테이너를 가져올 때 parent로 가져와도 되지만 BorderPane.. 2020. 11. 25.
[JAVA]java 대소문자 구분 없이 contains, java 문자열 검색, java contains java에서 해당 문자열이 포함되어 있는 객체 인지 알려 주는 메소드 contains() java 문자열 검색 : String객체.contains("찾을 문구") java 대소문자 구분없이 문자열 검색 : String객체.toUpperCase().contains("찾을 문구".toUpperCase()) (toLowerCase도 됨.) 2020. 11. 9.
JAVA subset 메소드 java.util.TreeSet에서 제공하는 subset 메소드에 대해 정리해보고자 합니다. java subset 메소드는 TreeSet안에 있는 객체들의 범위 검색을 해줍니다. 예시로 TreeSet 안에 a로 시작하는 단어부터 z 까지 있다고 가정해봅시다. 그중 b ~ e로 시작하는 단어를 검색하고 싶을 때 사용할 수 있습니다. 예시코드 입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class TreeSetExample3 { public static void main(String[] args) { TreeSet treeSet = new TreeSet(); treeSet.add("apple"); treeSet.add("cherry"); tree.. 2020. 10. 13.