Hello

Java Arrays, 배열의 출력·복사·채우기·정렬·검색 등

by 볼빵빵오춘기

Arrays

배열을 다루기 편리한 메서드(static) 제공한다.

※ static 메서드 - Math, Objects, Collections ⇒ util메서드라고도한다.

 

  • 배열의 출력 - toString()
  • 배열의 복사 - copyOf(), copyOfRange()
  • 배열 채우기 - fill(), setAll()
  • 배열의 정렬과 검색 - sort(), binarySearch()
더보기

⇒ 이진 탐색은 정렬이 안되어있으면 잘못된 결과가 나온다.

⇒ 순차 검색 - 앞(또는 뒤)에서부터 반복문으로 순서대로 검색 이진 탐색 - 배열을 반복해서 반으로 나누어 범위를 줄여가며 비교 탐색한다.

  • 다차원 배열의 출력 - deepToString()
  • 다차원 배열의 비교 - deepEquals()
  • 배열을 List로 변환 - asList(Object…a)
더보기

⇒ list.add(6)의 여기 list는 읽기 전용임 따라서 위의 예외가 발생함

  • 람다와 스트림관련 - parallerlXXX(), spliterator(), stream()

 

예제 코드

import java.util.*;

public class VarEx3 {
	public static void main(String[] args) {
		
		int[]	   arr   = {0,1,2,3,4};
		int[][]	arr2D = {{11,12,13}, {21,22,23}};

		System.out.println("arr="+Arrays.toString(arr));
		System.out.println("arr2D="+Arrays.deepToString(arr2D));

		int[] arr2 = Arrays.copyOf(arr, arr.length);
		int[] arr3 = Arrays.copyOf(arr, 3);          
		int[] arr4 = Arrays.copyOf(arr, 7);          
		int[] arr5 = Arrays.copyOfRange(arr, 2, 4);  
		int[] arr6 = Arrays.copyOfRange(arr, 0, 7);  

		System.out.println("arr2="+Arrays.toString(arr2));
		System.out.println("arr3="+Arrays.toString(arr3));
		System.out.println("arr4="+Arrays.toString(arr4));
		System.out.println("arr5="+Arrays.toString(arr5));
		System.out.println("arr6="+Arrays.toString(arr6));
		
		int[] arr7 =  new int[5];
		Arrays.fill(arr7, 9);  // arr=[9,9,9,9,9]
		System.out.println("arr7="+Arrays.toString(arr7));

		Arrays.setAll(arr7, i -> (int)(Math.random()*6)+1);
		System.out.println("arr7="+Arrays.toString(arr7));

		for(int i : arr7) { // 향상된 for문
			char[] graph = new char[i];
			Arrays.fill(graph, '*');
			System.out.println(new String(graph)+i);
		}

		String[][] str2D  = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
		String[][] str2D2 = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};

		System.out.println(Arrays.equals(str2D, str2D2));     // false
		System.out.println(Arrays.deepEquals(str2D, str2D2)); // true

		char[] chArr = { 'A', 'D', 'C', 'B', 'E' };

		System.out.println("chArr="+Arrays.toString(chArr));
		System.out.println("index of B ="+Arrays.binarySearch(chArr, 'B'));
		System.out.println("= After sorting =");
		Arrays.sort(chArr);
		System.out.println("chArr="+Arrays.toString(chArr));
		System.out.println("index of B ="+Arrays.binarySearch(chArr, 'B'));
		
		
	}
}

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기