✔ Learned
Arrays.copyOf
- Arrays.copyOf(원래배열, 새로운길이) 로 배열 길이를 바꾸고 새로운 인덱스에 새로운 요소를 넣어주면 된다.
public void push(int data) {
if(size == 0) {
stackArray = new int[]{data};
size++;
return;
}
stackArray = Arrays.copyOf(stackArray, size+1);
stackArray[size] = data;
size++;
}
- Arrays.copyOf(원래배열, from index, to 새로운인덱스) : from 인덱스는 포함하고 to 인덱스는 포함하지 않는다
public void pop() {
if(size==0) {
throw new EmptyStackException();
}
stackArray = Arrays.copyOfRange(stackArray, 0, size-1);
size--;
}
int[] array = {23, 43, 55, 12, 65, 88, 92};
int[] copiedArray = Arrays.copyOfRange(array, 1, 4);
assertTrue(3 == copiedArray.length);
assertTrue(copiedArray[0] == array[1]);
assertTrue(copiedArray[1] == array[2]);
assertTrue(copiedArray[2] == array[3]);
print test 하는 방법
- println 테스트 하는 방법
- https://www.baeldung.com/java-testing-system-out-println
private final PrintStream standardOut = System.out;
private final ByteArrayOutputStream outputStreamCaptor = new ByteArrayOutputStream();
@BeforeEach
public void setUp() {
System.setOut(new PrintStream(outputStreamCaptor));
}
@Test
void givenSystemOutRedirection_whenInvokePrintln_thenOutputCaptorSuccess() {
print("Hello Baeldung Readers!!");
Assert.assertEquals("Hello Baeldung Readers!!", outputStreamCaptor.toString()
.trim());
}
@AfterEach
public void tearDown() {
System.setOut(standardOut);
}