자바의 정석 11장 (29일차) - Arrays 메서드

728x90

Arrays 메서드

배열의 관리를 위한 메서드들

  • toString
  • copyOf
  • copyOfRange
  • setAll
  • fill
  • sort
  • binarySearch
  • deeptoString
  • deepEquals

자세한 설명은 아래 주석 참고

		int[] arr = {0,1,2,3,4};
		int[] arr2 = Arrays.copyOf(arr, 4);
		System.out.println(Arrays.toString(arr2));
//		항상 from ~ to의 형식이기 때문에 0,1,2,3까지만 출력된다
//		[0, 1, 2, 3]
		
		int[] arr3 = Arrays.copyOfRange(arr, 1, 4);
		System.out.println(Arrays.toString(arr3));
//		from ~ to이기 때문에 1,2,3까지만 출력
//		[1, 2, 3]
		
		int[] arr4 = Arrays.copyOfRange(arr, 1, 6);
		System.out.println(Arrays.toString(arr4));
//		범위 초과시에는 기본값의 초기값을 대입, 따라서 index 5의 자리는 0으로 채워짐
//		[1, 2, 3, 4, 0]
		
		int[] FillArr = {1,2,3};
		Arrays.fill(FillArr, 5);
		System.out.println(Arrays.toString(FillArr));
//		Arrays.fill은 공백이거나 이미 데이터가 있는 배열을 지정한 특정 문자열로 채워넣음
//		[5, 5, 5]
		int[] FillArr2 = {1,2,3};
		for(int list : FillArr2) {
//			for문으로 FillArr의 값을 순차적으로 꺼내고
			char[] ch = new char[list];
//			그 값을 character배열의 길이에 대입한 후
			Arrays.fill(ch, '*');
//			배열의 길이만큼 *로 대체하여 출력하면
//			그 배열의 길이만큼 *가 출력이됨
			System.out.println(new String(ch) + list);
//			*1
//			**2
//			***3
		}
		
		int[] SetArr = {1,2,3,4};
		Arrays.setAll(SetArr, (i) -> (int)(Math.random()*10) + 1);
		System.out.println(Arrays.toString(SetArr));
//		SetAll은 람다식을 이용하여 공백이거나 데이터가 존재하는 값을
//		특정 배열로 집어넣을 때 사용됨. 위의 예시는 배열을 난수로 채워넣음
//		[2, 3, 9, 10]
		
		char[] biArr = {'C','B','D','F','A'};
		System.out.println(Arrays.binarySearch(biArr, 'F'));
//		binarySearch는 배열 안의 특정 값 index를 찾아줌
//		3
		
		Arrays.sort(biArr);
		System.out.println(Arrays.toString(biArr));
//		sort메서드는 배열을 오름차순으로 정렬
//		[A, B, C, D, F]
		
		System.out.println(Arrays.binarySearch(biArr, 'P'));
//		값이 없을 때는 음수를 반환
		
		int[][] DimenArr = {{1,2,3},{4,5,6},{7,8,9}};
		int[][] DimenArr2 = {{1,2,3},{4,5,6},{7,8,9}};
		System.out.println(Arrays.deepToString(DimenArr));
		System.out.println(Arrays.deepEquals(DimenArr, DimenArr2));
//		다차원 배열을 비교하거나 출력할때는 deeptoString, deepEquals를 이용해야한다
//		[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
//		true
728x90