Error와 Exception
Error의 종류
컴파일 에러
컴파일시 발생하는 에러
런타임 에러
실행시 발생하는 에러
자바에서는 실행시 2가지 형태의 오류가 발생할 수 있다.
예제
try {
코드1,
코드2}
catch(Exception클래스명1 변수명1){
Exception을 처리하는 코드
} catch(Exception클래스명2 변수명2){
Exception을 처리하는 코드
}
위의 방법을 토대로 코드를 작성해보자.
값이 0이 나온다.
돈과 관련된 일이라거나 예민한 정보에는 더 조심해야 할 것이다.
예외처리를 하느니, 프로그램 실행 시 오류가 발생하는 쪽이 더 나을 것이다.
TreeSet
SortedSet 인터페이스를 구현하고 있으면, 자동으로 정렬이 된다.
Tree의 자료구조는 데이터가 추가되면서 자동으로 정리 된다.
저장과 동시에 정렬된다.
아래 사진과 같이 TreeSet의 생성자는 Comparator를 갖는다.
사용해보자!
TreeSet<String> treeSet = new TreeSet<>(new Comparator<String>(){
@Override
public int compare(String o1, String o2){
return 0;
}
});
new 생성자 { };
이름 없는 객체
compare(String o1, String o2)
o1,o2를 비교해 결과값이 1,0 ,-1을 반환한다.
같은 코드를 람다 코드로 변경하기
public static void main(String[] args) {
TreeSet<String> treeSet = new TreeSet<>((String o1, String o2)-> {
String str1 = o1.substring(1);
String str2 = o2.substring(1);
return str1.compareTo(str2);
}
);
TreeSet<String> treeSet = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String str1 = o1.substring(1);
String str2 = o2.substring(1);
return str1.compareTo(str2);
}
});
Vector를 상속받는 Stack
Vector는 List형태의 자료구조이다.
List는 특정 index를 꺼낼 수 있다.
하지만 안된다!
그 이유는 잘 못 만들어 진 것이다.
즉 JAVA에서 만들어진 Stack은 사용하지 말자.
java 1.0이후에 나온 2.0부터 컬렉션프레임워크가 만들어 졌다.