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] |