알고리즘 풀 때 자주 쓰는 Java 문법 - 1

몽루문·2024년 1월 11일
0

TIL - Java

목록 보기
1/2
post-thumbnail

📝 알고리즘 풀 때 자주 쓰는 JAVA 문법

알고리즘 풀때 자주 쓰는 문법에 대해서 정리해보려고 한다.
항상 IDE에 도움을 받아서 사용하기에 정리할 필요가 없었는데, 요즘 알고리즘을 맨날 풀면서 Web에서 쌩으로 하려니까 생각이 잘 안나서 자주 찾아보는데 정리해서 헷갈리지 않도록 하자.

import java.util.*;

import문 작성을 잊지말자!



🚩 Arrays

Arrays Class 관련 함수들을 정리해보려고 한다.

📝 Arrays.toString( arr )

→ 배열의 주소값이 아닌 배열의 내용을 출력해주는 함수

import java.util.*;

int[] arr = new int[6] { 2, 4, 6, 3, 1, 5 }
System.out.println(Arrays.toString(arr)); // [2, 4, 6, 3, 1, 5]

📝 Arrays.sort()

→ 배열을 순차적으로 출력해주는 함수

import java.util.*;

int[] arr = new int[6] { 2, 4, 6, 3, 1, 5 }
Arrays.sort(arr);
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 4, 5, 6]

Arrays.sort(arr, Collections.reverseOrder());
System.out.println(Arrays.toString(arr)); // [6, 5, 4, 3, 2, 1]

📝 Arrays.copyOf( arr, index)

→ 배열의 일정부분을 복사하는 함수 ( Deep Copy )

import java.util.*;

int[] arr = new int[6] { 2, 4, 6, 3, 1, 5 }
int[] arr_copy = Arrays.copyOf(arr, 3);
System.out.println(Arrays.toString(arr_copy)); // [2, 4, 6]

arr_copy = Arrays.copyOf(arr, 8);
System.out.println(Arrays.toString(arr_copy)); // [2, 4, 6, 3, 1, 5, 0, 0]

📝 Arrays.copyOfRange( arr, startIndex, endIndex )

→ 배열의 일정부분을 지정하여 복사하는 함수 ( Deep Copy )

import java.util.*;

int[] arr = new int[6] { 2, 4, 6, 3, 1, 5 }
int[] arr_copy = Arrays.copyOfRange(arr, 1, 3);
System.out.println(Arrays.toString(arr_copy)); // [4, 6, 3]

arr_copy = Arrays.copyOfRange(arr, 5, 8);
System.out.println(Arrays.toString(arr_copy)); // [5, 0, 0, 0]

📝 Arrays.asList( arr )

→ 배열을 ArrayList로 변경하여주는 함수

import java.util.*;

int[] arr = new int[6] { 2, 4, 6, 3, 1, 5 }
List<Integer> arr_list = Arrays.asList(arr);
System.out.println(arr_list.toString()); // [2, 4, 6, 3, 1, 5];

📝 Arrays.binarySearch( arr, findItem )

→ 배열이 정렬된 상태에서만 사용이 가능하다.
→ 정렬되어 있는 배열에서 값이 있으면 양수인 인덱스 값을 반환해주며, 값이 없으면 음수인 인덱스 값을 반환해준다. 0번 인덱스 앞이 -1부터 시작해서 -1씩 줄어들면서 위치를 표시해준다.

import java.util.*;

int[] arr = new int[6] { 2, 8, 4, 6, 10 }
Arrays.sort(arr);
System.out.println(arr.toString()); // [2, 4, 6, 8, 10];


int index = Arrays.binarySearch( arr, 6 );
System.out.println(index); // 2;

index = Arrays.binarySearch( arr, 10 );
System.out.println(index); // 4;

index = Arrays.binarySearch( arr, 1 );
System.out.println(index); // -1;

index = Arrays.binarySearch( arr, 5);
System.out.println(index); // -3;





🚩 List

List Class 관련 함수들을 정리해보려고 한다.

📝 .add( [index], value )

→ 순서대로 리스트를 추가하거나, 인덱스를 지정하여 해당 인덱스에 값을 삽입한다.
리스트의 크기는 자동으로 증가한다.

import java.util.*;

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

System.out.println(list.toString()); // [1, 2, 3]

list.add(0, 10);

System.out.println(list.toString()); // [10, 1, 2, 3]

📝 .get( index )

→ 해당 index의 리스트값을 가져온다.

import java.util.*;

List<Integer> list = new ArrayList<>() {{
      add(1);
      add(2);
      add(3);
    }};

int item = list.get(0);
System.out.println(item); // 1

📝 .set( index, value )

→ 해당 index의 리스트 값을 지정 value로 변경한다.

import java.util.*;

List<Integer> list = new ArrayList<>() {{
      add(1);
      add(2);
      add(3);
    }};

System.out.println(list.toString()); // [1, 2, 3]
list.set(0, 10);
System.out.println(list.toString()); // [10, 2, 3]

📝 .indexOf( value )

→ 리스트에서 value 값을 찾아서 해당 index를 반환한다. 값이 없다면 -1을 반환한다.

import java.util.*;

List<Integer> list = new ArrayList<>() {{
      add(1);
      add(2);
      add(3);
    }};

int index = list.indexOf(2);
System.out.println(index); // 1

index = list.indexOf(10);
System.out.println(index); // -1

📝 .lastIndexOf( value )

→ 리스트에서 가장 마지막 value 값을 찾아서 해당 index를 반환한다. 값이 없다면 -1을 반환한다.

import java.util.*;

List<Integer> list = new ArrayList<>() {{
      add(10);
      add(20);
      add(30);
      add(20);
    }};

int index = list.lastIndexOf(20);
System.out.println(index); // 3

index = list.lastIndexOf(40);
System.out.println(index); // -1

📝 .remove( index )

→ 해당 index의 리스트 값을 지운다.

import java.util.*;

List<Integer> list = new ArrayList<>() {{
      add(1);
      add(2);
      add(3);
    }};

System.out.println(list.toString()); // [1, 2, 3]

list.remove(1);
System.out.println(list.toString()); // [1, 3]

📝 .contains( value )

→ 해당 value 값이 리스트에 포함되어 있는지 true / false 로 반환해준다.

import java.util.*;

List<Integer> list = new ArrayList<>() {{
      add(1);
      add(2);
      add(3);
    }};
    
boolean flag = list.contains(2);
System.out.println(flag); // true

flag = list.contains(4);
System.out.println(flag); // false

📝 .clear()

→ 리스트를 초기화한다.

import java.util.*;

List<Integer> list = new ArrayList<>() {{
      add(1);
      add(2);
      add(3);
    }};
    
System.out.println(list.toString()); // [1, 2, 3]

list.clear();
System.out.println(list.toString()); // []

📝 .isEmpty()

→ 리스트가 비었는지 true / false 로 반환해준다.

import java.util.*;

List<Integer> list = new ArrayList<>() {{
      add(1);
      add(2);
      add(3);
    }};
    
boolean flag = list.isEmpty();
System.out.println(flag); // false

list.clear();
flag = list.isEmpty();
System.out.println(flag); // true

📝 .size()

→ 리스트의 길이를 반환해준다. Array의 length와 같은 기능이다.

import java.util.*;

List<Integer> list = new ArrayList<>() {{
      add(1);
      add(2);
      add(3);
    }};
    
int size = list.size();
System.out.println(size); // 3





📌 마무리

자주 사용하는 Arrays, List Class의 함수에 대해서 정리해보았다.
알고리즘을 풀면서 또 자주 찾아보는 Class가 있으면 정리해야겠다.

profile
알고 있는 것을 정리하고, 새로운 것을 알기위해 끄적이는곳..

0개의 댓글