목록언어/Java의 정석 (13)
Vienna

◇ 배열의 String화 * toString: 일차원 배열 String화 * deepToString: 다차원 배열 String화 import java.util.Arrays; public class Main { public static void main(String[] args) { int[] arr = {0,1,2,3,4}; System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr)); } } ◇ 배열의 복사 * copyOf(): 배열의 전체를 복사 * copyOfRange(): 배열의 일부를 복사 import java.util.Arrays; public class Main { public static void main(String[] arg..

C#에서는 Stack은 Push & Pop, Queue에서는 Enqueue, Dequeue 였지만Java에서는 Stack은 push & pop Queue에서는 offer & poll 함수를 사용하여데이터를 넣고 빼는 것을 할 수 있다. LinkedList가 Queue 인터페이스의 구현체인지는 오늘 처음 알았다. 스택의 경우에는 Stack이라는 구현체가 (추상 클래스가 아니라 추상 클래스를 상속 받은, 객체를 생성할 수 있는 클래스) 제공되지만, 큐의 경우에는 Queue라는 인터페이스만 제공된다고 한다. 구현체 클래스는 Java API문서에서 확인 가능하다. https://docs.oracle.com/javase/8/docs/api/

Iterator 의 next() 함수를 직접 사용해보았다. 3개의 데이터를 넣고 hasNext() 함수의 return 값이 fasle가 나올 때까지 출력하는 예제를 따라해보았다. 그런데 문득 궁금증이 일었다. 만약 이 상태에서 데이터를 3개를 더 넣으면 어떻게 될까? 이렇게 되면 2가지 가능성을 예측할 수 있다. 1. Iterator 객체 내부적으로 다음 index의 값을 출력하기 위해 index를 next() 함수 호출할 때마다 1씩 증가 처리를 한다. 2. Iterator 객체가 생성될 때 Collection 객체의 주소값이 아니라 모든 값을 복사하여 처리한다. 그래서 후에 Collection에 element를 add하여도 Iterator 객체에서 참조하는 Collection의 값은 변함이 없다. 그..