반응형

1. Arrays.toString()
1차원 배열 까지는 toString()메소드로 문자열 출력. 하지만 2차원 이상의 배열은 deepToString()메소드로 출력한다. 

public class Sample1 {
	public static void main(String[] args) {
		int[] num1 = {1,2,3};
		int[][] num2 = {
				{1,2,3},{4,5,6},{7},{8,9,10}
		};
		
		System.out.println(num1 + " -배열 자체는 내용을 확인할 수 없다. ");
		System.out.println(Arrays.toString(num1) + " - Arrays.toString()");//1차원 배열
		System.out.println(Arrays.deepToString(num2) + " - Arrays.deepToString()"); //2차원 배열 출력		
	}
}
[I@2f92e0f4 -배열 자체는 내용을 확인할 수 없다. 
[1, 2, 3] - Arrays.toString()
[[1, 2, 3], [4, 5, 6], [7], [8, 9, 10]] - Arrays.deepToString()

 

2. Arrays.equals()
배열간의 내용이 같은지를 비교. 같으면 true, 다르면 false값 반환

import java.util.Arrays;

public class Sample1 {
	public static void main(String[] args) {
		
		int[] correct = {1,2,3,4,1,4,2,5,2};
		
		int[][] answers = {
				{1,2,3,4,5,6,2,5,2},
				{1,1,5,6,8,9,2,5,2},
				{2,3,5,6,5,7,2,5,2},
				{1,2,3,4,1,4,2,5,2},//정답
				{2,3,6,7,5,6,2,5,2},				
		};
		
		//정답찾기
		int no = 0; //학생번호
		for(int[] answer: answers) {
			no++;
			if(Arrays.equals(correct, answer)) {
				System.out.printf("%d번 학생이 맞췄습니다.\n", no);
			}else {
				System.out.printf("%d번 학생은 틀렸습니다.\n", no);
			}			
		}
	}
}
1번 학생은 틀렸습니다.
2번 학생은 틀렸습니다.
3번 학생은 틀렸습니다.
4번 학생이 맞췄습니다.
5번 학생은 틀렸습니다.

 

3. Arrays.copyOf()
배열을 똑같이 복사하되, 지정한 길이까지 정해서 복사할 수 있다, 무조건 처음부터 입력한 배열의 길이까지 복사.
만약 시작의 위치도 정해서 복사하고 싶다면 Arrays.copyOfRange() 메소드를 활용한다.

import java.util.Arrays;

public class Sample1 {
	public static void main(String[] args) {
		
		String[] name1 = new String[] {"steve" , "tom", "james", "mike", "bob", "oliver"};
		
		String[] name2 = Arrays.copyOf(name1, name1.length-1);
		String[] name3 = Arrays.copyOf(name1, name1.length-2);
		String[] name4 = Arrays.copyOf(name1, name1.length-3);
		String[] name5 = Arrays.copyOf(name1, name1.length-4);
		
		System.out.println(Arrays.toString(name1));
		System.out.println(Arrays.toString(name2));
		System.out.println(Arrays.toString(name3));
		System.out.println(Arrays.toString(name4));
		System.out.println(Arrays.toString(name5));
		
		System.out.println("\n첫 번째와 마지막 요소를 제거하고 복사하여 출력");
		String[] name6 = Arrays.copyOfRange(name1, 1, name1.length-1);
		System.out.println(Arrays.toString(name6));		
	}
}
[steve, tom, james, mike, bob, oliver]
[steve, tom, james, mike, bob]
[steve, tom, james, mike]
[steve, tom, james]
[steve, tom]

첫 번째와 마지막 요소를 제거하고 복사하여 출력
[tom, james, mike, bob]

 

4. Arrays.sort()
배열의 내용을 오름차순으로 정렬하는 메소드

import java.util.Arrays;

public class Sample1 {
	public static void main(String[] args) {
		
		String[] name1 = new String[] {"tom" ,"steve" ,"oliver" , "james", "mike", "bob"};
		
	
		System.out.println("정렬 전: " + Arrays.toString(name1));
		
		//정렬할 배열을 복사하자
		String[] name2 = Arrays.copyOf(name1, name1.length);
		String[] name3 = Arrays.copyOf(name1, name1.length);
		
		Arrays.sort(name2); //배열의 전체를 정렬
		Arrays.sort(name3, 2, 6); //배열의 일부 범위를 정렬
		System.out.println("전체정렬 후: " + Arrays.toString(name2));
		System.out.println("범위정렬 후: " + Arrays.toString(name3));//3번째 부터 정렬	
	}
}
정렬 전: [tom, steve, oliver, james, mike, bob]
전체정렬 후: [bob, james, mike, oliver, steve, tom]
범위정렬 후: [tom, steve, bob, james, mike, oliver]

'Study > JAVA' 카테고리의 다른 글

[JAVA] 조건문 문제풀기  (0) 2020.06.15
[Java] 조건문  (0) 2020.06.10
[Java] splite()메소드  (0) 2020.06.07
[Java] 반복문 - 문제풀이  (0) 2020.06.07
[Java] 반복문 - for문  (0) 2020.06.07

+ Recent posts