Java
-
[JAVA] TreeSetJAVA 2022. 8. 19. 10:48
TreeSet은 이진 탐색 트리(binary search tree)로 구현되어있으며, 범위 탐색과 정렬에 유리합니다. 이진 트리의 경우 한개의 노드가 최대 2개의 하위 노드를 갖게 됩니다. TreeSet의 기본형태 및 특징 부모를 기준으로 작은 값은 왼쪽에 큰 값은 오른쪽에 저장된다. 데이터가 많아 질수록 비교 횟수가 증가하기 때문에 추가, 삭제에 효율성이 떨어진다. class TreeNode{ TreeNode left; // 왼쪽 자식 노드 Object element; // 저장할 객체 TreeNode right; // 오른쪽 자식 노드 } 데이터의 저장 boolean add(Object o) equals()와 hashCode()를 자동으로 호출한다. Set은 중복을 허용하지 않는다. TreeSet의 ..
-
[Java1000제] 콘솔 만들기 - 남궁성의 초보 코드 스터디JAVA 2022. 8. 12. 15:46
남궁성의 코드초보스터디(자바 java... : 네이버 카페 전문가가 지도하는 스터디카페에요. 프로그래밍언어(자바 java, C언어)를 제대로 배우고픈 분들 오세요. cafe.naver.com 1단계 더보기 [문제1] 에제를 실행하면 '>>'와 같은 프롬프트가 나타나서 사용자의 입력을 기다리고, 사용자가 입력한 내용을 화면에 출력한다. 만일 사용자가 'q' 또는 'Q'를 입력하면 프로그램을 종료한다. 다음의 예제를 완성하세요. [예제ConsoleEx1.java] import java.util.*; class ConsoleEx1 { public static void main(String[] args) { while(true) { String prompt = ">>"; System.out.print(promp..
-
Java.lang 패키지 요약 (Object, String, StringBuffer)JAVA 2022. 8. 10. 18:48
Object 클래스의 메서드 protected Object clone() : 자기 자신 객체 복제 Cloneable 인터페이스 구현한 클래스의 인스턴스만 복제가 가능 사용하려면 public으로 오버라이딩 해줘야한다. 인스턴스 변수가 참조형이면 객체도 복제되게 오버라이딩 필요 public boolean equals(Object obj) : 객체 주소 비교 String 클래스는 기본적으로 값을 비교하도록 오버라이딩 되어있다. public boolean equals(Object obj){ return (this == obj); // 주소 비교 } // 오버라이딩으로 객체의 값 비교로 바꾸기 class className{ public boolean equals(Object obj){ if(obj!=null &&..
-
[JAVA] 객체지향 개념 다형성 상속 추상화 인터페이스JAVA 2022. 8. 9. 12:23
1. 객체지향 언어의 특징 기존의 프로그래밍 언어에 몇 가지 규칙을 추가한 것이다. 코드의 재사용성이 높다. 코드의 관리가 수월하다. 제어자와 메서드를 이용해서 데이터를 보호하기 때문에 신뢰성이 높은 개발이 가능하다. Class란? 변수와 메서드(객체의 멤버 )의 집합이다. 2. 인스턴스 생성 및 사용 인스턴스 생성이란? class로부터 인스턴스를 생성하는 것 클래스명 참조 변수명 = new 클래스명(); 생성 과정 = new 연산자를 통해 class명의 인스턴스 생성 후, 생성된 인스턴스 주소를 참조 변수에 저장 인스턴스를 사용한다는 것은 class에 있는 변수 혹은 메서드들을 사용한다는 것이다. 참조 변수명. 변수; 참조 변수명. 메서드(); 클래스에 접근하기 위해서는 인스턴스 주소가 저장돼있는 참조..
-
[JAVA] StringBuilder클래스와 Math클래스 확인하기JAVA 2022. 8. 8. 11:17
1. StringBuilder란? StringBuffer는 동기화되어 있으며 멀티 스레드에 안전하지만 싱글 스레드에 사용 시 불필요한 성능 저하를 가져온다. 싱글 스레드는 StringBuilder를 사용하게 성능면에서 좋다. class StringBuilderTest1{ // StringBuffer로 만들기 StringBuffer sb1 = new StringBuffer(); void Append1(){ sb1.append("abc"); } // ⭐StringBuilder로 만들기 StringBuilder sb2 = new StringBuilder(); void Append2(){ sb2.append("abc"); sb2.insert(2,'.'); // ab.c sb2.delete(1,3); // ac ..
-
[JAVA] StringBuffer클래스의 메서드JAVA 2022. 8. 8. 10:19
StringBuffer의 특징 StringBuffer는 동기화(데이터 보호)되어 있고 멀티스레드에 안전하다는 특징이 있다. 스레드의 종류 및 특징 싱글 스레드는 한 번에 1개의 작업을 하는 것을 말합니다. 멀티 스레드는 한 번에 n개의 작업을 하는 것을 말합니다. 멀티 스레드의 경우 스레드끼리 데이터를 공유하는데 이때 데이터가 꼬일 수 있으며 이를 방지하기 위해서는 동기화로 작업해주어야 합니다. (데이터 보호 목적) StringBuffer() : 16 문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성한다. StringBuffer(int length) : 지정된 개수의 문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성한다. StringBuffer(String ..
-
[JAVA] String클래스의 생성자와 메서드JAVA 2022. 8. 5. 17:31
String(String s) : 주어진 문자열(s)을 갖는 String 인스턴스를 생성한다. (생성자) String s = new String("Hello"); // s = "Hello" String(char [] value) : 주어진 문자열(value)을 갖는 String 인스턴스를 생성한다. (생성자) char []를 String으로 변경하려면 String()을 사용하면 됩니다. String을 char []로 변경하려면 toCharArray()를 사용하면 됩니다. char[] c = {'H','e','l','l','o'}; String s = new String(c); // s = "Hello" String(StringBuffer sb) : StringBuffer 인스턴스의 문자열과 같은 내용의 ..
-
[JAVA] String클래스JAVA 2022. 8. 5. 11:39
1. String 클래스 정보 문자열을 다루기 위한 클래스 데이터(char []) + 메서드(문자열 관련) 내용을 변경할 수 없는 불변(immutable) 클래스이다. class StringTest1{ String a = "a"; String b = "b"; void StringSum(){ a = a + b; // "ab" } } 어떻게 내용을 변경할 수 없는 불변의 String클래스가 변경이 되는지에 대해 알아보겠습니다. 참조 변수 a에는 문자열 리터널 "a"의 주소가 담깁니다. (예: 주소 : 0X100) 참조 변수 b에는 문자열 리터널 "b"의 주소가 담깁니다. (예: 주소 : 0X200) 문자열 리터널 "a"와 "b"를 합친 결과는 새로운 문자열 리터널 "ab"가 됩니다. (예: 주소 : 0X30..