본문 바로가기

코딩일기/Java16

BufferedReader와 BufferedWriter 알고리즘 공부를 하다가 Scanner 함수보다 효율이 좋다고 하는 BufferedReader와 BufferedWriter에 대해서 알게되어서 글을 올려본다. BufferedReader란? 버퍼라는 공간을 이용해서 개행문자나 스페이스가 나타나기 전까지 버퍼에 담아뒀다가 한꺼번에 전송하는것이다. 따라서 전송하는 횟수가 적기때문에 효율적이고 빠르다. Scanner도 BufferedReader와 똑같이 버퍼를 이용해서 값을 입력 받는데 BufferedReader는 단순히 읽어드리기만 하기 때문에 입력속도가 더 빠르다. 하지만 Scanner는 문자열을 파싱하기 때문에 BufferedReader보다 속도가 느리다. BufferedReader 사용법 BufferedReader를 사용하려면 해당 클래스로 객체를 생성해.. 2021. 7. 22.
[Java] ArrayList 란? 우리는 배열을 선언하게 된다면 항상 그 배열의 크기를 설정해주어야만 한다. 그래서 값을 넣을때 배열의 크기만큼 값을 넣어주지 못하게된다면 배열의 크기를 매번 수정해줘야 한다. 그리고 값을 삭제하게되더라도 마찬가지로 배열의 크기를 변경 해주어야 하고 그리고 삭제한 값의 index를 메꾸기 위해서 index도 수정해주어야 한다. 그래서 이런 수고스러움을 덜어내기 위해서 Java에서 제공하는 클래스가 ArrayList 클래스이다. ArrayList는 크기를 따로 지정해주지도 않아도 되기도 할뿐더러 안에 값을 삭제하더라도 저절로 index를 수정하고 크기도 수정해준다. ArrayList 선언 ArrayList list = new ArrayList(); //타입을 따로 지정하징낳으면 Object로 선언됨 Arra.. 2021. 6. 18.
[Java] LinkedList 란? LikedList란? LinkedList는 아래 사진처럼 각각의 노드가 그림처럼 연결되어 있는 형태로 저장이 되는 방식이다. 그래래서 각각의 노드들은 자기와 연결되어 있는 노드들에 대한 정보만 가지고 있지 전체적인 노드들에 대한 정보를 가지고 있지 않은 형태를 가지고 있다. 위의 그림처럼 서로 다음 노드를 가르키고 있기때문에 값을 추가할땐 새롭게 또 다른곳을 가르키게해 값을 추가할때 용이하고 삭제할때도 마찬가지로 link되어 있는것을 자르기만 하면 되기때문에 삭제에도 매우 용이하다. 하지만 위에서 말했듯이 LinkedList는 다음 노드에 대한 정보만을 가지고 있기 때문에 특정 노드를 검색하기 위해선 모든 경로를 순회해야 된다. 따라서 LinkedList로 검색을 하게 되면 성능 저하를 일으키기 때문에 .. 2021. 6. 18.
[Java] 2차원 배열 출력 방법 배열 출력하는 방법에는 2가지가 있다. 1. for문을 이용한 출력 2. Arrays.toString()을 이용한 출력 방법 1차원 배열은 Arrays.toString()을 하게 되면 안에 있는 값이 정상적으로 출력이 된다. int[] temp = {1,2,3,4,5}; System.out.println(Arrays.toString(temp)); 결과 [1, 2, 3, 4, 5] 하지만 2차원 배열에서 위와 같은 방식으로 하게 되면 배열의 주소를 return 하게 된다. int[][] temp = {{1,2},{3,4},{5}}; System.out.println(Arrays.toString(temp)); 결과 [[I@15db9742, [I@6d06d69c, [I@7852e922] 그래서 2차원 배열도 .. 2021. 6. 14.