Burninghering's Blog
article thumbnail
5-10.컬렉션 프레임워크
JAVA 2022. 2. 22. 22:04

자바에서 제공되는 자료구조 구현 클래스들 - 컬레션 프레임워크 컬렉션 프레임워크 프로그램 구현에 필요한 자료구조(Data Structure)를 구현해 놓은 JDK 라이브러리 java.util 패키지에 구현되어 있음 개발에 소요되는 시간을 절약하면서 최적화 된 알고리즘을 사용할 수 있음 여러 구현 클래스와 인터페이스의 활용에 대한 이해가 필요함 Collection 인터페이스 하나의 객체를 관리하기 위한 메서드가 선언된 인터페이스 하위에 List와 Set 인터페이스가 있음 List 인터페이스 객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스 자료구조 리스트 (배열, 연결리스트)의 구현을 위한 인터페이스 중복을 허용함 ArrayList, Vector, LinkedList, Stack, ..

5-9.제네릭 메서드
JAVA 2022. 2. 21. 19:07

제네릭 메서드 활용하기 제네릭 메서드란? 자료형 매개변수를 메서드의 매개변수나 반환 값으로 가지는 메서드는 자료형 매개 변수가 하나 이상인 경우도 있음 (T,V,E....등등) 제네릭 클래스가 아니어도, 내부에 제네릭 메서드는 구현하여 사용 할 수 있음 public 반환형 메서드 이름(자료형 매개변수.....) { } 제네릭 메서드의 활용 예 두 점(top, bottom)을 기준으로 사각형을 만들 때 사각형의 너비를 구하는 메서드를 만들어 보자 두 점은 정수인 경우도 있고, 실수인 경우도 있으므로 제네릭 타입을 사용하여 구현한다. 더보기 Point package ch07; public class Point { T x; V y; Point(T x, V y){ this.x=x; this.y=y; } publ..

article thumbnail
5-8.T extends 클래스
JAVA 2022. 2. 21. 17:18

사용하기 5-7까지의 테스트 프로그램에선, 만약 프린터에 water 재료를 넣어도 가능했다..... 그렇다면 제한을 해줘야 하지 않을까? 상위 클래스의 필요성 T 자료형의 범위를 제한 할 수 있음 상위 클래스에서 선언하거나 정의하는 메서드를 활용할 수 있음 상속을 받지 않는 경우 T는 Object로 변환되어 Object 클래스가 기본으로 제공하는 메서드만 사용가능 T extends 를 사용한 프로그래밍 GenericPrinter 에 material 변수의 자료형을 상속받아 구현 T에 무작위 클래스가 들어갈 수 없게 Material 클래스를 상속받은 클래스로 한정 더보기 Material package ch07; public abstract class Material { //직접 쓸 일이 없기 때문에 abs..

5-7.제네릭(Generic) 프로그래밍
JAVA 2022. 2. 21. 16:57

무엇이든 담을 수 있는 제네릭(Generic) 프로그래밍 제네릭 자료형 정의 변수를 사용할 때 먼저 자료형을 선언해야 한다. 여러 자료형이 쓰일 수 있는 변수라면? 다양한 자료형의 클래스를 만들면 너무 오버헤드다! 클래스에서 사용하는 변수의 자료형이 여러개 일수 있으며, 그 안의 기능(메서드)은 동일한 경우 클래스의 자료형을 특정하지 않고 추후 해당 클래스를 사용할 때 지정 할 수 있도록 선언 특징 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식 컬렉션 프레임워크에서 많이 사용되고 있음 제네릭 타입을 사용하지 않는 경우의 예 자료형을 지정하지 않으면, Object 타입으로 인식한다. 더보기 Powder package ch06; public class Powder { pu..

5-3.연결 리스트 (LinkedList)
JAVA 2022. 2. 16. 03:31

LinkedList 특징 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 자료를 저장하는 노드에는 자료와 다음 요소를 가리키는 링크(포인터)가 있음 자료가 추가 될때 노드 만큼의 메모리를 할당 받고 이전 노드의 링크로 연결함 (정해진 크기가 없음) 연결 리스트의 i 번째 요소를 찾는게 걸리는 시간은 요소의 개수에 비례 : O(n) jdk 클래스 : LinkedList

5-2.배열(Array)
JAVA 2022. 2. 6. 02:46

Array의 특징 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 정해진 크기가 있음 요소의 추가와 제거시 다른 요소들의 이동이 필요함 배열의 i 번째 요소를 찾는 인덱스 연산이 빠름 jdk 클래스 : ArrayList, Vector MyArray.java package ch02; public class MyArray { int[] intArr; //int array int count; //개수 public int ARRAY_SIZE; public static final int ERROR_NUM = -999999999; public MyArray() { count = 0; ARRAY_SIZE = 10; //배열 사이즈 10 intArr = new int[ARRAY_SIZE]; //사이즈 10으로 시..

article thumbnail
5-1.자료구조
JAVA 2022. 2. 4. 04:39

1. 자료구조란? (Data Structure) 프로그램에서 사용할 많은 데이타를 메모리 상에서 관리하는 여러 구현방법들 효율적인 자료구조가 성능 좋은 알고리즘의 기반이 됨 자료의 효율적인 관리는 프로그램의 수행속도와 밀접한 관련이 있음 여러 자료 구조 중에서 구현하려는 프로그램에 맞는 최적의 자료구조를 활용해야 하므로 자료구조에 대한 이해가 중요함 2. 자료구조의 종류 1) 한 줄로 자료를 관리하기 (선형 자료구조 - 앞과 뒤가 1:1관계) - 배열 (Array) : 선형으로 자료를 관리, 정해진 크기의 메모리를 먼저 할당받아 사용한다. 자료의 물리적 위치와 논리적 위치가 같으므로 인덱싱 속도가 빠르다. 자료 추가할 때 -> O(n) 인덱싱 -> 시간이 짧게 걸린다 - 연결 리스트 (LinkedList..

article thumbnail
4-3.String, StringBuilder, StringBuffer 클래스, text block
JAVA 2022. 1. 28. 00:07

1. String 클래스 String 선언하기(사용하는 방법) String str1 = new String("abc"); //1.첫 번째 방법 : 힙 메모리에 잡힌다 String str2 = "abc"; //2.두 번째 방법 : 상수 풀에 잡히며, //abc라는 string이 있고, 그 곳의 주소만 가리킨다 힙 메모리에 인스턴스로 생성되는 경우와 상수 풀(constant pool)에 있는 주소를 참조하는 두 가지 방법 힙 메모리는 생성될때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가짐 public class StringTest { public static void main(String[] args) { String str1 = new String("abc"); //힙에 각각..