본문 바로가기
개인공부

Arrays

by 리승우 2022. 8. 22.

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

 

배열의 출력 - toString()

배열의 복사 - copyOf(), copyOfRange()

배열 채우기 - fill(), setAll()

배열의 정렬과 검색 - sort(), binarySearch()

다차원 배열의 출력 - deepToString()

다차원 배열의 비교 - deepEquals()

배열을 List로 변환 - asList(Object...a)

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class quiz1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List list = Arrays.asList(1,23,3);
		List list2 = Arrays.asList(new Integer[] {1,2,3,4});
		List list3 = new ArrayList(Arrays.asList(3,4,5));
		System.out.println(list);
		System.out.println(list2);
		System.out.println(list3);	
	}
}

[1, 23, 3]
[1, 2, 3, 4]
[3, 4, 5]

 

import java.util.Arrays;

public class ex11_6 {
	public static void main(String[] args) {
		// 배열 생성
		int[] arr = {0,1,2,3,4};
		int[][] arr2D = {{11,12,13},{21,22,23}};
		
		//String타입으로 배열 출력
		System.out.println("arr="+Arrays.toString(arr));
		System.out.println("arr="+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));
        
        // arr=[0, 1, 2, 3, 4]
        // arr=[[11, 12, 13], [21, 22, 23]]
        // arr2=[0, 1, 2, 3, 4]
        // arr3=[0, 1, 2]
        // arr4=[0, 1, 2, 3, 4, 0, 0]
        // arr5=[2, 3]
        // arr6=[0, 1, 2, 3, 4, 0, 0]
		
		System.out.println("--------------------------");
		
		
		int[] arr7 = new int[5];
		Arrays.fill(arr7, 9); // arr7= [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 x=0; x<arr7.length; x++){
		// int i = arr7[x]; 대신에 아래와 같이 작성할 수 있음
		for (int i : arr7) { //향상된 for문 (for each문)
			char[] graph = new char[i];
			Arrays.fill(graph,'*');
			System.out.println(new String(graph)+i);
		
        
        // arr7 =[9, 9, 9, 9, 9]
        // arr7=[2, 2, 3, 6, 6]
        // **2
        // **2
        // ***3
        // ******6
        // ******6
        
		System.out.println("--------------------------");
		
		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); //binarySerach하기전에는 배열을 정렬해야함.
		System.out.println("chArr="+Arrays.toString(chArr));
		System.out.println("index of B ="+Arrays.binarySearch(chArr,'B'));	
        
        // chArr=[A, D, C, B, E]
        // index of B =-2
        // =After sorting =
        // chArr=[A, B, C, D, E]
        // index of B =1
		}
	}
}

arr=[0, 1, 2, 3, 4]
arr=[[11, 12, 13], [21, 22, 23]]
arr2=[0, 1, 2, 3, 4]
arr3=[0, 1, 2]
arr4=[0, 1, 2, 3, 4, 0, 0]
arr5=[2, 3]
arr6=[0, 1, 2, 3, 4, 0, 0]
--------------------------
arr7 =[9, 9, 9, 9, 9]
arr7=[2, 3, 5, 4, 5]
**2
--------------------------
chArr=[A, D, C, B, E]
index of B =-2
=After sorting =
chArr=[A, B, C, D, E]
index of B =1
***3
--------------------------
chArr=[A, D, C, B, E]
index of B =-2
=After sorting =
chArr=[A, B, C, D, E]
index of B =1
*****5
--------------------------
chArr=[A, D, C, B, E]
index of B =-2
=After sorting =
chArr=[A, B, C, D, E]
index of B =1
****4
--------------------------
chArr=[A, D, C, B, E]
index of B =-2
=After sorting =
chArr=[A, B, C, D, E]
index of B =1
*****5
--------------------------
chArr=[A, D, C, B, E]
index of B =-2
=After sorting =
chArr=[A, B, C, D, E]
index of B =1

 

'개인공부' 카테고리의 다른 글

TreeSet - 범위 탐색, 정렬  (0) 2022.08.23
HashSet  (0) 2022.08.23
지네릭스 (Generics)  (0) 2022.08.21
Iterator / ListIterator / Enumeration / Map  (0) 2022.08.17
스택과 큐의 활용  (0) 2022.08.16

댓글