알고리즘테스트 4일차. 어제 못했던 것들을 정리하고 남은시간에 코딩테스트를 풀었다.
자바의 데이터 타입은 Primitive type 기본형과 reference type 참조형이 있다.
기본형 : int char double등. 실제 값을 담고있다.
vs
참조형 : String Array등. 값을 바로 담고 있지 않으며 값을 담고있는 객체의 주소값을 담고있다. null
값을 가질 수 있다.
기본형은 객체가 아니다. 하지만 기본형 데이터를 객체로 취급해야할 때가 있다.
이때 기본형을 객체 형태로 한번 감싼 것이 Wrapper클래스. (java.lang 패키지에 포함)
앞글자를 대문자로 쓰고 풀네임을 작성하면 된다. Integer Character
박싱 : 기본형을 Wrapper클래스로 바꿔주는 것.
언박싱 : Wrpper클래스 타입의 값을 기본형으로 바꾸는 것.
.intValue() 를 쓰면 Integer를 int로 언박싱 가능.
참고로 기본형간 비교는 ==
를 쓰고 참조형간 비교는 .equals
를 쓴다.
참조형 사용시 메모리/속도 효율성이 좋지 않아 가능하면 기본형을 쓰되 Collections를 사용하는 경우 어쩔수 없이 참조타입을 사용하는 것이 좋다고 한다.
자바의 컬렉션 프레임워크는 저장된 요소를 읽어오는 방법을 Iterator 인터페이스로 표준화한다. list set에서도 쓸 수 있다.
아래와 같이 Iterator로 출력 가능.
Iterator<Integer> iter = lnkList.iterator();
while (iter.hasNext()){
System.out.print(iter.next());
}
boolean hasNext() : 해당 iteratior가 다음요소를 가지고있으면 true, 아니면 false.
E next() : iteratior의 다음요소를 반환
역방향 출력시 hasPrevious()와 .previous()를 쓰면 된다.
while (iter.hasPrevious()) {
System.out.print(iter.previous());
}
중복시도 회피를 위해서 int[] 배열 하나 만들어서 기록지로 쓰면 좋다.
기본 선언시 다 0으로 되어있는데 성공할때마다 해당 index에 1올리고
시도할때는 index값에 0으로 되어있는거만 &&로 묶어서 시도
라이브러리나 컬렉션 안쓰고 만들면 레거시라고 한다.
실무에서는 그냥 쓰는 편이라고 한다.
ctrl+alt+v : 메서드 사용할때 어떤 값으로 받아야하는지 나옴
char의 초기값은 공백이 아니라 \u0000
이다.