2021-01-19 기존에 변수나 배열과 같은 경우에는 새로운 객체를 만들어서 복사를 진행하면 된다. 그러면 클래스를 복사해서 사용하고자 하면 어떻게 해야 할까? ctrl + c -> ctrl + v를 사용해서 새로운 클래스를 만들어 사용하면 될까?라고 생각할 수 도 있지만 자바 자체에서 이와 같은 고민을 해결해주기 위해 Cloneable이라는 인터페이스를 제공한다. 즉 복사를 하고자 하는 클래스에 implements Cloneable를 붙여주면 이와 같은 클래스를 사용할 수 있다. 바로 코드를 살펴보자. package tThinClone.copy; import java.util.Arrays; public class People implements Cloneable { String name; int ag..
2021-01-17 DecimalFormat은 다양한 숫자 데이터를 자신의 원하는 형식으로 나타낼 수 있도록 도와준다. 오늘은 이와 같은 클래스의 사용법을 알아보자. package tFormat; import java.text.DecimalFormat; public class main { public static void main(String[] args) { // 0 10진수의 빈자리는 0으로 채운다. // # 10진수의 빈자리는 채우지 않는다. // . 소수점을 표현 ex) #.0 double num = 11111.1111; DecimalFormat df = new DecimalFormat("0"); System.out.println(df.format(num)); //소숫점 표시안해주어 출력안됨 df..
2021-01-16 이번에 TreeMap에 이어서 TreeSet에 대하여 알아보자. 마찬가지로 이진트리구조를 가지고 있는 컬렉션으로써, 이진트리 구조를 잘 모를 경우 전 글을 확인하자. seeminglyjs.tistory.com/227 사실 Set이라는 자료구조 특성상 Map보다는 훨씬 간단하기 떄문에 바로 코드로 알아보도록 하자. package tTreeSet; import java.util.TreeSet; public class main { public static void main(String[] args) { TreeSet tSet = new TreeSet(); tSet.add(10); tSet.add(20); tSet.add(30); tSet.add(40); tSet.add(50); } } 기존..
2021-01-14 TreeMap에서는 Tree라는 개념이 중요하다. 이는 이진트리 구조를 뜻하는데, 아래 보이는 노드들이 바로 이진트리 형태의 구조이다. 맨 위의 시작 노드를 보통 루트(root)라고 불리며, 나머지는 n개의 자식 노드들로 구성되어 있다. (하위 노드 위에 루트 노드를 제외한 인접한 상위 노드가 있다면 그 상위 노드를 부모 노드라고 부르기도 한다.) 해당 구조를 자세히 보면 같은 자식이라도 왼쪽은 작은 자식 오른쪽은 큰 자식이라고 된 것을 볼 수 있는데, 이는 마찬가지로 아래 이진트리를 보면 이해가 쉬울 것이다. 부모(상위) 노드를 기준으로 큰 값은 우측 작은 값은 좌측에 저장된다. 자 이제 tree 구조 설명을 됐으니 TreeMap을 살펴보자. TreeMap의 가장 큰 장점은 객체를 ..
2021-01-13 자바의 상속관계를 구현하는 과정 중 자식 클래스의 생성자에서 컴파일 오류가 발생하는 것을 간혹 목격할 수 있는데, 이와 같은 오류를 해결하는 방법을 알아보자. 우선 아래는 예제로 사용될 부모 클래스이다. package eException2; public class Parent { String name; int age; public Parent(String name, int age) { this.name = name; this.age = age; } } 이후 자식 클래스에서 성별이라는 필드를 추가해 새로운 생성자를 만들 예정이다. 하지만 위와 같이 생성자에서 컴파일 오류가 발생하게 된다. 분명 extends로 Parent를 물려받아 필드 name / age를 사용할 수 있는데, 실제 코..
2021-01-11 우선 Stream 은 자바의 배열 / 리스트 / 맵 등의 컬렉션의 데이터들을 하나씩 참조하여 람다식으로 처리할 수 있는 반복자이다. 기존 자바 7 이전의 반복자 Iterator보다 보다 코드량이 줄었으며, 람다식의 사용으로 간결하고 편리해졌다고 볼 수 있다. 이제 코드를 통해 어떤식으로 사용이 되는지 알아보자. package sStream; public class People { private String name; private int age; public People(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(..