본문 바로가기

Java28

4. 선택정렬 public class SelectionSort { // 두 인덱스의 벨류를 바꾸는 메서드 // 정렬할 정수 배열과 서로 교체할 인덱스 i, j 를 인자로 받는다 public static void swapElements(int[] arr, int i, int j) { // 기존의 수 [i]를 따로 기억하고 int temp = arr[i]; // 기존 [i] 자리에 [j]의 값을 넣으며 arr[i] = arr[j]; // 저장해두었던 [i]의 값을 다시 [j]의 자리에 넣는다. arr[j] = temp; } // 탐색 // 정수 배열과 시작 인덱스를 인자로 받는다. public static int indexLowest(int[] arr, int start) { // 시작인덱스를 따로 기억하고 int low.. 2021. 3. 16.
3. 알고리즘 분석 어떤 응용프로그램인지에 따라 어떤 구현체를 사용하여 데이터를 처리하는게 좋은지 알 수 있는 방법중 한가지 방법은 두 구현체를 모두 구현하여 비교해보는 것이다. 이 방법에는 몇 가지 문제점이있고 다음과 같다. - 알고리즘 비교시 사전에 모두 구현하여 비교해봐야한다 (비용 상승) - 경과는 사용 컴퓨터의 성능에 의전한다. - 결과는 문제 크기나 입력으로 사용하는 데이터에 의존하기도 한다. 알고리즘 분석을 사용하면 이런 문제들을 해결할 수 있다. 하지만 몇가지를 가정해야하는데 그 는 아래와 같다. 1. 하드웨어에 세부사항을 다루지 않기에 보통 알고리즘을 이루는 기본 사칙 연산등의 기본연산을 식별하며 이 연산 수를 센다. 2. 입력데이터의 세부사항을 다루지 않기위해 평균 성능 분석을 하며 가능하지 않을때는 최악.. 2021. 3. 16.
2. List Interface? 리스트는 왜 나뉘어져있을까? JCF (Java Collection Framework)를 사용하다보면 종종 ArrayList와 LinkedList로 List에 주입하는데 왜 두가지 구현을 제공할까? 어떤 동작은 ArrayList가 빠르고 어떤 상황에서는 LinkedList가 더 효율적이다. List와 같이 Interface는 메서드의 집합을 의미한다 아래 코드를 보자. public class ExampleList { private List list; private ExampleList() { list = new LinkedList(); } private List getList() { return list; } public static void main(String[] args) { ExampleList i.. 2021. 3. 16.
1. 자료구조 왜? - 왜 배우지? 와 닿지는 않지만.. 자바의 컬렉션 프레임워크와 주요클래스를 중심으로 개념을 학습하고 시간 복잡도를 분석하며 성능을 측정할 수 있는 능력음 함양하고 그 다음으로 이어질 자바 성능에대해 접근하기 위함. 하~ 자료구조와 알고리즘은 소프트웨어의 품질을 높이는 아주아주 기본적인 작업이래요 그래서 해보려고요 2021. 3. 16.
자바 기초 배우기 31,32일차 [ Thread 쓰레드 기본개념, Synchronized (동기화작업), wait / Notify ] Thread - 스레드란 ​ - 스레드 사용법, 카운트 다운 예제 ​ - 다중 Thread의 공유자원 접근 시 동기화 Synchronized ​ - 다중 Thread의 wait( ) / Notify( ) ​ ​ 프로세스란? 주어진 목적에 따라 어떠한 일이 처리되거나 진행되는 과정 ​ ​ ​ 스레드란? 하나의 프로세스 가 실행 중일 때 프로세스를 이루는 단위 실행 요소 ​ ​ ​ ​ 다중 스레드? 동시에 복수의 스레드가 동작하는 것 두 개의 스레드가 동시 작동될 때 순차적으로 처리한다면 동기화 처리이며 동시 스레드가 병렬해서 동작한다면 비동기 처리라 한다. ​ ​ ​ Thread 구현 사용방법 및 카운트 다운 예제 1) extends Thread ( Thread의 상속 생성 ) ​ ​ 1. 스레드 클래스를.. 2020. 1. 5.
자바 기초 배우기 30일차 [ 컬렉션 - ArrayList Iterator, HashMap ] 1. ArrayList ​ 2. Iterator ​ 3.HashMap ​ ​ ​ 1.ArrayList ​ 1) ArrayList? Vector와 같이 가변크기의 배열을 구현하기 위해 만든 클래스 ​ ​ 2) Vector 와의 차이?? https://lchit.tistory.com/45 자바 기초 배우기 29일차 [ 제네릭, 컬렉션 - Vector ] 1. 제네릭 ​ 2. 컬렉션 -Vector ​ ​ ​ ​ ​ 1. 제네릭 ​ [ 제네릭이란? ] 클래스 구현 시 클래스명 뒤에 , , 등 이 포함한 기법 클래스 객체 생성 시 여러 자료형이 올 수 있도록 구현.. lchit.tistory.com 자바 기초 배우기 29일 차 [ 제네릭, 컬렉션 - Vector ] ​ Vector와의 차이점 얘기 전.. 2020. 1. 5.
자바 기초 배우기 29일차 [ 제네릭, 컬렉션 - Vector ] 1. 제네릭 ​ 2. 컬렉션 -Vector ​ ​ ​ ​ ​ 1. 제네릭 ​ [ 제네릭이란? ] 클래스 구현 시 클래스명 뒤에 , , 등 이 포함한 기법 클래스 객체 생성 시 여러 자료형이 올 수 있도록 구현할 수 있다. 예제를 통하여 보는 게 더 이해가 빠르다.(후 예제 참조) ​ ​ [ 제네릭 클래스 구현법 ] ​ class 클래스명 { } *일반적으로 널리 사용되는 제네릭 타입 ​ E- Element(요소)- 컬렉션 라이브러리에서 많이 사용 K- Key N- Number T- Type V- Value S, U- 2번째, 3번째 타입을 지정 ​ Ex) class ClassA { } ​ ​ ​ ​ ​ [ 제네릭 클래스 사용 시 ] ​ ​ 클래스명 객체 변수명 = new 생성자(); ​ Wr.. 2020. 1. 5.
자바 기초 배우기 28일차 [ 예외처리, TryCatch문 ] [ 예외란? ] 자바에서 오동작이나 결과에 나쁜 영향을 줄 수 있는 실행을 할 때 발생하는 오류 ​ 문법에 맞지 않는 코드는 이클립스가 먼저 잡아준다. 사용자가 잘 못 입력했거나, 배열의 범위를 초과했거나 이런 오류같은 경우에는 실행 전에 미리 잡아줘야 할 필요가있다 [ 예외발생 사례 ] ​ 1) zeroDivision > ArithmeticException ​ 2) 배열크기 초과시 > ArrayIndexOutOfBoundsException ​ 3) 잘못입력했을시 > InputMismatchException . . . 등등등 여러 오류가 있다 ​ 이중 inputMismatchException 즉, 입력의 타입이 잘못되었을 경우로 try - catch 문을 살펴 보겠다 ​ ​ ​ [ 예외를 처리하는 방법 .. 2020. 1. 5.
자바 기초 배우기 27일차 [ Math클래스, Calendar클래스 ] 1.Math클래스 - java.lang 패키지 내에 속해있어 자동 import이다 ​ - 모든 메서드가 static 메서드이다 ​ ​ MathEx.java ​ - Math.abs(정수 혹은 실수) : 절댓값 반환 ​ - Math.ceil(실수) : 올림 ​ - Math.floor(실수) : 내림 ​ - Math.round(실수) : 반 올림 ​ - Math.max(a, b) : a와 b 중에 큰 수 반환 ​ - Math.min(a, b) : a와 b중에 작은 수 반환 ​ - Math.pow(밑, 지수) : 밑(지수) 값을 반환 ​ - Math.sqrt( 실수 ) : 제곱근 ​ - Math.random() : 0.0~1.0 사이의 값을 반환 0~1 사이의 범위?? == 확률 .. 2020. 1. 5.