java 36

[Java] 스트림(Stream)과 람다식

스트림(Stream)이란? 스트림(Stream)은 자바 8부터 추가된 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. Iterator과 비슷한 역할을 하지만 람다식으로 요소 처리 코드를 제공하여 코드가 좀 더 간결하다는 점과 내부 반복자를 사용하므로 병렬처리가 쉽다는 점에서 차이가 있다. Iterator과 Stream의 코드 비교 ArrayList list = new ArrayList(Arrays.asList(1,2,3)); Iterator iter = list.iterator(); while(iter.hasNext()) { int num = iter.next(); System.out.println("값 : "+num); } 자바 7 이전까지는 Array..

java 2023.05.03

[Java] 추상클래스(abstract class)와 인터페이스

추상 클래스(abstract class) 추상 클래스는 클래스 구현부 내부에 추상 메서드가 하나 이상 포함되거나 abstract로 정의된 경우를 말한다. abstract class를 상속받은 클래스(하위 클래스)는 자기의 성질에 맞게 Overriding하여 사용한다. 추상 클래스는 new 연산자를 사용하여 객체를 생성할 수 없다. 추상 클래스(부모)와 일반 클래스(자식)는 상속의 관게에 놓여있다. 추상 클래스는 새로운 일반 클래스를 위한 부모 클래스의 용도로만 사용된다. 공통된 필드와 메서드를 통일하여 일반 클래스 작성 시 시간을 절약할 수 있다. 추상 클래스는 단일 상속만 가능하며 일반 변수를 가질 수 있다. 추상 클래스는 동일한 부모를 가지는 클래스를 묶는 개념으로 상속을 받아서 기능을 확장시키는 것..

java 2023.05.03

[Java] 오버로딩(Overloading)과 오버라이딩(Overriding)

오버로딩(Overloading) 메서드의 이름은 같고 매개변수의 개수나 타입이 다른 함수를 정의하는 것 리턴 값만을 다르게 갖는 오버로딩은 작성할 수 없다. 같은 매개변수의 개수와 타입을 가지면서 접근 제어자만 다르게 한다고 오버로딩이 되지는 않는다. 같은 기능을 하는 메서드를 하나의 이름으로 사용할 수 있다. 기존에 없던 새로운 메서드를 정의 public class Test { // 매개변수가 없는 overloadingTest() method void overloadingTest(){ System.out.println("매개변수를 받지 않는 메서드"); } // 매개변수로 int형 인자 2개를 요청하는 overloadingTest(int a, int b) method void overloadingTes..

java 2023.05.03

java (Comparable/Compatator)

*comparable인터페이스 -TreeSet과 TreeMap의 키는 저장과 동시에 자동으로 오름차순으로 정렬된다. -Comparable인터페이스는 객체를 정렬하는 데 사용되는 메소드인 compareTo()메소드를 정의 -자바에서 같은 타입의 인스턴스를 서로 비교해야만 하는 클래스들은 모두 Comparable 인터페이스를 구현 -Boolean을 제외한 래퍼 클래스나 String, Time, Date와 같은 클래스의 인스턴스는 모두 정렬 가능 -기본 정렬 순서는 작은 값에서 큰 값으로 정렬되는 오름차순 예제 *Comparator인터페이스 -Comparator 인터페이스는 Comparable 인터페이스와 같이 객체를 정렬하는 데 사용되는 인터페이스 -Comparable 인터페이스를 구현한 클래스는 기본적으로..

java 2022.09.29

java (Set-HashSet)

*Set 컬렉션 클래스 -요소의 순서를 유지 하지 않음 -요소의 중복 허용하지 않음 (hashCode() 리턴값을 사용하여 객체가 동일한지 판단) -수학의 집합과 유사한 개념 관련 메소드 add - 값 추가하기 addAll - 값 여러 개 추가하기 remove - 특정 값 제거하기( 기타 TreeSet - 오름차순으로 값을 정렬하여 저장하는 특징 LinkedHashSet - 입력한 순서대로 값을 정렬하여 저장하는 특징 HashSet 예제

java 2022.09.29

java (Map-HashMap,Hashtable, Properties)

*Hash -데이터에 대한 검색과 저장에서 아주 우수한 성능을 보인다. -Hash로 값을 생성하면 고유 주소 값이 생기는데 이것을 숫자로 변환한 것을 해시코드라고 한다. -자바에서 해시코드는 Heap 영역에 인스턴스에 대한 참조 값 Hash 함수란? 데이터의 효율적인 관리를 위해 임의의 길이를 가진 데이터를 고정된 길이를 가진 테이터로 매핑해주는 함수 Map 컬렉션 -Map은 리스트나 배열처럼 순차적으로(sequential) 해당 요소 값을 구하지 않고 key를 통해 value를 얻는다. -key로 value를 얻어냄 -순서가 보장 되지 않음-키와 값으로 구성되어 있으며 키는 중복 허용하지 않고 값은 중복 가능 -HashMap, HashTable, Properties -키의 동일 조건은 hashCode(..

java 2022.09.29

java (List-ArrayList, Vector, LinkedList)

*List 컬렉션 클래스 -리스트와 배열의 가장 큰 차이점은 크기가 정해져 있지 않고 동적으로 변한다는 점 -데이터를 크기를 알 수 없을 때 유용하게 사용 -요소의 저장 순서가 유지 -같은 요소의 중복 저장을 허용 -데이터 크기가 고정X(동적 할당) -데이터를 다루기 위한 여러 방법이 제공 List 컬렉션 클래스의 종류 -ArrayList -LinkedList -Vector -Stack add : 해당 컬렉션에 요소를 추가 하거나 해당 인덱스 위치에 값을 삽입 pitches.add(0, "130"); get : 특정 위치의 값을 가져 올 때 System.out.println(pitches.get(1)); size : ArrayList의 갯수를 리턴 System.out.println(pitches.size..

java 2022.09.29

java (generic, 컬렉션 프레임워크)

*generic -자바에서 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미 -데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입을 가질 수 있도록 하는 방법 -클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법 컴파일 시에 미리 타입 검사(type check)를 수행하면 다음과 같은 장점을 가진다. -컴파일 시 강한 타입 체크 -타입 변환(casting)을 제거 제네릭 타입 (class, interface) *컬렉션 프레임워크 -자바는 배열의 여러가지 문제점을 해결하고 , 알려진 자료 구조를 바탕으로 객체를 효율적으로 추가, 삭제, 검색 할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와..

java 2022.09.29

java (Wrapper 클래스, Arrays 클래스, StringTokenizer)

*Wrapper 클래스 -프로그램에 따라 기본 타입의 데이터를 객체로 취급해야 하는 경우가 있다. 예를 들어, 메소드의 인수로 객체 타입만이 요구되면, 기본 타입의 데이터를 그대로 사용할 수는 없다. 이때에는 기본 타입의 데이터를 먼저 객체로 변환한 후 작업을 수행해야 한다. -8개의 기본 타입에 해당하는 데이터를 객체로 포장해 주는 클래스를 래퍼 클래스(Wrapper class)라고 한다. -래퍼 클래스는 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어 준다. -java.lang 패키지에 포함되어 제공 기본 타입 래퍼 클래스 byte Byte short Short int Integer long Long float Float double Double char Charac..

java 2022.09.28

java (Math 클래스, Date, Calendar 클래스)

*java.lang.Math 클래스 -수학에서 자주 사용하는 상수들과 함수들을 미리 구현해 놓은 클래스 -Math 클래스의 모든 메소드는 클래스 메소드(static method) -객체를 생성하지 않고도 바로 사용할 수 있다. -Math 클래스는 java.lang 패키지에 포함되어 제공 -random() 메소드 0.0 이상 1.0 미만의 범위에서 임의의 double형 값을 하나 생성하여 반환 -abs() 메소드 전달된 값이 음수이면 그 값의 절대값을 반환하며, 전달 된 값이 양수이면 전달 된 값을 그대로 반환 -floor() 메소드 인수로 전달받은 값과 같거나 작은 수 중에서 가장 큰 정수를 반환 -ceil() 메소드 반대로 인수로 전달받은 값과 같거나 큰 수 중에서 가장 작은 정수를 반환 -round(..

java 2022.09.28