본문 바로가기

java9

[JAVA]Comparable<T>,Comparator<T> 인터페이스 자바에서는 배열,리스트를 정렬하기 위해 Comparable,Comparator라는 두가지 인터페이스를 제공한다. Comparable - 이 인터페이스를 구현한 객체 스스로에게 부여하는 한 가지 기본 정렬 규칙을 설정하는 목적으로 사용한다.(보통 작은수에서 큰수로, 알파벳 순서대로, 가나다 순서대로 정렬한다.) Comparator - 이 인터페이스를 구현한 클래스는 정렬 규칙 그 자체를 의미하며, 기본 정렬 규칙과 다르게 원하는대로 정렬순서를 지정하고 싶을 때 사용한다. 배열의 경우 정렬을 할 때 Arrays 클래스의 sort()메서드를 이용하여 정렬한다. int,String값은 오름차순 정렬이 잘 되지만, 객체를 만들고 나서, sort()를 쓰면 java.lang.ClassCastException: 객체.. 2020. 6. 8.
[JAVA]컬렉션(Collection) Collection Framework란? 자바에는 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합이 있는데 이것을 Collection Framework라고 한다. Collection Framework는 인터페이스로 구현되어져 있으며, 주요 인터페이스로는 Set인터페이스 List인터페이스 Map인터페이스 으로 이루어져 있다. 주요 Interface의 특징 인터페이스 주요설명 구현 클래스 List 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용함. Vector, LinkedList, ArrayList, Stack, Queue Set 순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않음. HashSet, TreeSet Map 키와 값이 한 쌍으로 이루어진 .. 2020. 6. 5.
Math 클래스 Math의 필드값 1. Math.E : 오일러의 수, 자연로그의 밑 값으로 2.718을 나타냄 2. Math.PI :원주율 값 3.14159 random() 0.0이상 1.0미만의 범위에서 임의의 double형 값을 하나 생성하여 반환 Random클래스를 사용한 의사 난수 발생기를 사용하여 임의의 수를 생성한다. 난수를 생성할 수 있는 기능은 java.util패키지에 포함된 Random클래스의 nextInt()메소드로도 가능하다. Math는 생성자를 만들어서 사용하지않고 Math.메소드 이런식으로 사용한다. System.out.println((int)(Math.random()*100)); //0~100 System.out.println((int)(Math.random() * 6)); // 0 ~ 5 Sy.. 2020. 5. 25.
String, StringBuffer String 클래스의 인스턴스는 한 번 생성되면 그 값을 읽기만 하고 변경할 수 없습니다. 즉, 불변 이다. StringBuffer 클래스는 그 값을 변경할 수도 있고, 추가할 수도 있다. 그게 가능한 이유는 StringBuffer 클래스는 내부적으로 버퍼라는 독립공간을 가지는데, 인스턴스 생성 시에 사용자가 설정한 크기보다 항상 16개의 문자를 더 저장할 수 있는 크기로 생성된다. 만약, 문자열을 합쳐야 될 경우, String을 사용하여 붙이면 항상 새로운 인스턴스가 생성되기 때문에 공간이 낭비되고, 속도도 느리기 때문에 비효율적이다. StringBuffer를 사용하면 문자열을 바로 추가가능하고 속도도 빨라진다. 하지만 String을 자주사용하는 이유는 멀티 스레드 환경에서 객체가 변화하는 상황이라면 .. 2020. 5. 25.