반응형
ArrayList ArrayList는 List 인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 가집니다. Object배열을 이용해 데이터를 순차적으로 index는 0부터 시작하고 그 다음은 1,2,3 ~ 순으로 저장됩니다. 만약 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음 저장됩니다. 또한 선언된 배열의 타입이 모든 객체의 최고조상인 Object이기 때문에 모든 종류의 객체를 담을 수 있습니다. ArrayList 선언 import java.util.ArrayList; ArrayList arraylist1 = new ArrayList(); ArrayList arraylist2 = new Arra..
유클리드 호제법 유클리드 호제법이란, 두 개의 수가 주어졌을 때, 최대공약수를 구하는 알고리즘입니다. 최소공배수는 주어진 두 개의 수를 곱한 값을, 그 두 개의 수의 최대공약수로 나누어 구할 수 있습니다. 최대공약수 : GCD(greatest common divisor) 최소공배수 : LCM(largest common multiple) 유클리드 호제법으로 최대공약수를 구하는 원리 1980과 168의 최소공배수를 유클리드 호제법을 이용하면 다음과 같은 과정을 거치게 됩니다. 1. 1980을 168로 나눕니다. 2. 1980을 168로 나눈 나머지 132와 168을 다시 나눕니다. 3. 168을 132로 나눈 나머지 36과 132를 다시 나눕니다. 4. 나머지가 0이 될때까지 반복합니다. 5. 나머지가 0이..
컬렉션 프레임워크란 "다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미" 합니다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니다. 또한, 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화되어 있어 재사용성이 높은 코드를 작성할 수 있고, 다수의 데이터를 다루는데 필요하고 다양하고 풍부한 클래스들을 제공하여 프로그래머들에게 편리함을 제공해줍니다. 컬렉션 프레임워크 핵심 인터페이스 컬렉션 프레임워크에서는 데이터를 저장하는 자료 구조에 따라 다음과 같은 3가지 타입이 존재 합니다. 그리고 인터페이스 List와 Set의 공통된 부분을 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였습니..
스택(Stack)과 큐(Queue)를 설명하기 앞서 간단하게 알아봅시다. Stack은 LIFO(Last In First Out) 구조로 되어 있으며, 쉽게 해석하면 "후입 선출" 입니다. 즉, 마지막(최근)에 넣은 것을 먼저 뺀다는 말이죠. Queue는 FIFO(First IN First Out) 구조로, Stack과 반대로 "선입 선출" 입니다. 아르바이트하면서 냉장고에 재고 채워넣을 때 선입선출이란말 자주 들어보셨죠 ? 즉, 먼저 넣은 것(오래된 것)을 먼저 뺀다는 말입니다. 스택(Stack)과 큐(Queue) 비교 코드 import java.util.Stack; import java.util.LinkedList; import java.util.Queue; class StackQueueEx { pub..
Math클래스는 기본적인 수학계산에 유용한 메서드로 구성되어 있습니다. 이번 포스팅을 통해 Math클래스의 자주 사용되는 메서드에 대해 다뤄볼 것이며 삼각함수 구하는 법도 다뤄보려 합니다. Math 클래스 Math.abs() 주어진 값의 절대값을 반환합니다. public class MathTest { public static void main(String[] args) { int i = Math.abs(-2); double d = Math.abs(-4); System.out.println(i); System.out.println(d); } } Math.sqrt() - ( double형으로 반환 ) 주어진 값의 제곱근 값을 반환합니다. public class MathTest { public static v..
인터페이스란 ? 인터페이스는 일종의 추상클래스로, 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없습니다. 오직 추상메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용되지 않습니다. 추상 클래스를 부분적으로만 완성된 "미완성 설계도"라고 한다면, 인터페이스는 구현된 것은 아무것도 없는 그냥 스케치만 되어 있는 "기본 설계도"라 할 수 있습니다. 인터페이스의 특징 다중 상속이 가능하다. 추상 메서드와 상수만을 가진다. 생성자 생성이 불가능하다. 메서드 오버라이딩이 필수적이다. 인터페이스의 장점 1. 개발시간을 단축시킬 수 있다. 인터페이스를 통해 메서드를 호출하는 쪽에서는 메서드의 내용과 관계없이..