Java 109

[객체지향][자바의 정석] - 20. HashSet

📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [HashSet - 순서가 없고, 중복이 허용되지 않는다.] HashSet Set인터페이스를 구현한 대표적인 컬렉션 클래스 순서를 유지라하면 LinkedHashSet 클래스를 사용하면 된다. TreeSet 범위 검색과 정렬에 유리한 컬렉션 클래스 HashSet보다 데이터 추가, 삭제에 시간이 더 걸린다. [HashSet - 주요메서드] [실습] package javajungsuk; import java.util.Iterator; import java.util.Set; import java.util.*; public class Java11_8_1 { public static void main(String[] arg..

Java/객체지향 2022.01.31

[객체지향][자바의 정석] - 19. Comparator과 Comparable

📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [Comparator과 Comparable] Comparator - 기본 정렬기준을 구현하는데 사용 Comparable - 기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용 public interface Comparator{ int compare(Object o1, Object o2); // 두 객체를 비교 boolean equals(Object obj); // 이퀄스를 오버라이딩 하라는 뜻 } public interface Comparable{ int compareTo(Object o); //주어진 객체(o)를 자신과 비교 this와 비교 } Compare()와 CompareTo()는 두 객체의 비교결과를..

Java/객체지향 2022.01.31

[객체지향][자바의 정석] - 18. 배열을 다루기 편리한 메서드(static) 제공

[Arrays 배열을 다루기 편리한 메서드(static) 제공] 배열의 출력 - toString( ) 배열의 복사 - copyOf( ), copyOfRange( ) 배열 채우기 - fill( ), setAll( ) 배열의 정렬과 검색 - sort( ), binarySearch( ) 다차원 배열의 출력 - deepToString( ) 다차원 배열 비교 - deepEquals( ) 배열을 List로 변환 - asList(Object ... a) 람다와 스트림 관련 - parallelXXX( ), spliterator( ), stream( ) [출처]

Java/객체지향 2022.01.27

[객체지향][자바의 정석] - 17. Iterator, ListIterator, Enumeration

[Iterator(new)+, ListIterator, Enumeration(old)] 컬렉션에 저장된 데이터를 접근하는 데 사용되는 인터페이스 Enumeration는Iterator의 구버전 ListIterator는 iterator의 접근성을 향상시킨 것(단방향 - > 양방향) 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것(set,map,List) 컬렉션에서 iterator()를 호출해서 iterator를 구현한 객체를 얻어서 사용한다. [실습] package javajungsuk; import java.util.ArrayList; import java.util.Iterator; public class Java11_4_1 { public static void main(String[] args) {..

Java/객체지향 2022.01.27

[객체지향][자바의 정석] - 14. LinkedList

1. LinkedList 배열의 장단점 장점 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간(접근시간, access time)이 짧다. 단점 크기를 변경할 수 없다. 크기변경을 위해서는 아래와 같이 3단계 작업을 해야 한다. 더큰 배열을 생성 기존 데이터를 복사한 뒤 참조를 변경해주어야 한다. 크기 변경을 피하기 위해 충분히 큰 배열을 생성하게되면, 메모리가 낭비된다. 비순차적인(=중간 데이터) 데이터의 추가, 삭제에 시간이 많이 걸리게 된다. 데이터를 추가하거나 삭제하기 위해, 다른 데이터를 옮겨야 한다. 그러나 순차적인 데이터 추가(끝에 추가)와 삭제(끝부터 삭제)는 빠르다. 2. LinkedList 배열의 단점 보완 배열과 달리 링크드 리스트는 불연속적으로 존재하는 데이터를 연결(link) 데..

Java/객체지향 2022.01.26

[객체지향][자바의 정석] - 13. ArrayList

1. ArrayList란? ArrayList는 기존의 Vector를 개선한 것으로 구현원리와 기능적으로 동일하다. ArrayList와 달리 Vector는 자체적으로 동기화처리 되어 있다. List인터페이스로 구현하기에 저장 순서가 상관 없이 유지되고 중복을 허용한다 데이터 저장공간으로 배열을 사용한다.(배열기반) 2. ArrayList의 메서드 3. 실습 package javajungsuk; import java.util.ArrayList; import java.util.Collections; public class Java11_2_1 { public static void main(String[] args) { ArrayList list1 = new ArrayList(10); //autoboxing에 의..

Java/객체지향 2022.01.25

[객체지향][자바의 정석] 10.2 - 형식화 클래스(숫자, 날짜)

1. 형식화 클래스란? 프로그래밍에서 유용한 형식과 화면에서 유용한 데이터 형태는 다르다. 화면에 출력될 때는 문자열만 의미가 있기 때문에 사람이 읽을 수 있도록 가시성이 좋도록 Object의 toString() 메서드를 오버라이딩해서 사용한다. 하지만 오바라이딩해서 사용하기 힘든 두 가지 형태가 있는데, 기본형 숫자와 Date 클래스다. 그래서 숫자 또는 Date를 읽기 쉬운 문자열로 바꾸는데 사용되는 클래스를 형식화 클래스라 한다 형식화 클래스에는 DecimalFormat과 SimpleDateFormat이 있다. 📌출처:https://itellyhood.tistory.com/85 java.text 패키지의 DecimalFormat, SimpleDateFormat DecimalFormat 숫자를 형식화..

Java/객체지향 2022.01.24

[객체지향][자바의 정석] - 10. 1 날짜와 시간

1. Calendar과 Date java.utill.Date 날짜와 시간을 다룰 목적으로 만들어진 클래스 Date의 메서드는 거의 deprecated(앞으로 사용 X)되었지만, 여전히 쓰이고 있다 java.utill.Calendar Date 클래스를 개선한 새로운 클래스 . 그러나 여전히 딘점 존재 날짜와 시간을 함께 다루는 것이 캘린더의 가장 큰 단점이었다. java.time 패키지(가능하면 이걸 많이 쓰자 ~) Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공 날짜와 시간을 따로 다룰 수 있게 개선하였다. 2. Calendar 클래스 캘린더 클래스는 추상클래스이기 때문에 객체 생성이 불가하다. 추상 클래스이기때문에 getInstance()를 통해 구현된 객체를 얻어야 한다. Calen..

Java/객체지향 2022.01.21