728x90
배열의 출력
//배열의 출력
int[] iArr = {100,90,80,70,60,50};
System.out.println(iArr);//배열을 가리키는 참조 변수 iArr값을 출력. 주소가 출력
//단, char 배열의 경우는 주소가 나타나지 않음
char[] chArr = {'a','b','c','d'};
System.out.println(chArr);
System.out.println();
//배열 요소를 순서대로 하나씩 출력
for(int i = 0; i<iArr.length;i++) {
System.out.println(iArr[i]);
}
System.out.println();
//배열 iArr의 모든 요소를 출력
System.out.println(Arrays.toString(iArr));
System.out.println();
//향상된 for문
for(int a : iArr) {
System.out.println(a);
}
int[] iArr1 = new int[10];
int[] iArr2 = new int[10];
for(int i = 0; i < iArr1.length;i++) {
iArr1[i] = i + 1; //1~10의 숫자를 순서대로 배열에 넣음
System.out.print(iArr1[i]+ ", ");
}
System.out.println();
for(int i = 0; i < iArr2.length;i++) {
iArr2[i] = (int)(Math.random()*10)+1; //1~10사이의 숫자를 임의로 배열에 넣음
System.out.print(iArr2[i] + ", ");
}
배열 활용
//배열의 활용
//총합과 평균 : 배열의 모든 요소를 더해 총합과 평균을 구함
int sum = 0;
float avg = 0F;
int[] score = {100, 79, 88, 75, 70};
for(int i = 0; i < score.length ; i++) {
sum += score[i]; //반복문을 이용해서 배열에 저장되어 있는 값들을 모두 더함
}
avg = (float)sum/score.length; //계산 결과를 float타입으로 얻으려면 형변환(분모, 분자 중 한 곳만 형변환 해주면됨)
System.out.println("총합 = " + sum);
System.out.println("평균 = " + avg);
System.out.println();
//최솟값과 최댓값
int[] score1 = {58,30,45,66,79,80,91,44};
int max = score1[0]; //배열의 첫번째 값으로 최댓값을 초기화
int min = score1[0]; //배열의 첫번째 값으로 최솟값을 초기화
for(int i = 1; i < score1.length;i++) { //배열의 두 번째 요소부터 읽기 위해서 변수 i의 값을 1로 초기화
if(score1[i]>max) {
max = score1[i];
} else if(score1[i]<min) {
min = score1[i];
}
}
System.out.println("최댓값 " + max);
System.out.println("최솟값 " + min);
System.out.println();
//섞기 : 배열의 요소의 순서를 반복해서 바꿈(숫자 섞기)
int[] numArr = {0,1,2,3,4,5,6,7,8,9};
System.out.println(Arrays.toString(numArr));
System.out.println();
for(int i = 0; i < numArr.length; i++) {
int n = (int)(Math.random() * 10); //0~9 중 한 값을 임의로 얻음
int temp = numArr[0];
numArr[0] = numArr[n];
numArr[n] = temp;
System.out.print(numArr[i] + ", ");
}
System.out.println();
System.out.println(Arrays.toString(numArr));
String 배열의 선언과 생성
//String 배열의 선언과 생성
String[] name = {"동명왕","온조왕","혁거세"}; //3개의 문자열을 배열을 생성하고 값을 할당
System.out.println(Arrays.toString(name));
String[] strings = {"가위", "바위", "보"};
for(int i = 0; i < 5;i++) {
int temp = (int)(Math.random()*3);
System.out.println(strings[temp]);
}
2차원 배열
//2차원 배열
//테이블 형태의 데이터를 저장하기 위한 배열
/*
* 국어 영어 수학
* 1 100 100 100
* 2 50 30 40
* 3 40 50 60
* 4 70 80 90
*/
int[][] score = new int [4][3]; //4행 3열의 2차원 배열 생성
/*
* 0 0 0
* 0 0 0
* 0 0 0
* 0 0 0
*/
/*
* 행 index (0~행길이 - 1) ㅣ
* 열 index (0~열길이 - 1) ㅡ
* 0 1 2
*0 score[0][0] score[0][1] score[0][2]
*1 score[1][0] score[1][1] score[1][2]
*2 score[2][0] score[2][1] score[2][2]
*3 score[3][0] score[3][1] score[3][2]
*/
score[0][0] = 100;
System.out.println(score[0][0]);
//2차원 배열의 초기화 => 1차원 배열의 배열
int[][] arr = { {1,2,3},{4,5,6} }; //new int[][] 가 생략됨
// =>
// int[][] arr = {
// {1,2,3}, //1차원배열
// {4,5,6} //1차원배열
// };
/* 100 100 100
* 50 30 40
* 40 50 60
* 70 80 90
* 2차원 배열로 만들어보기
*/
int[][] score = {
{100, 100, 100},
{50, 30, 40},
{40, 50, 60},
{70, 80, 90}
};
int sum = 0;
for(int i = 0; i< score.length;i++) {
for(int j = 0; j < score[i].length;j++) {
System.out.printf("score[%d][%d]=%d%n", i, j, score[i][j]);
sum += score[i][j];
}
}
System.out.println("sum = " + sum);
String 클래스
//String 클래스
//1. String 클래스는 char[]와 메서드를 결합한 것
//2. String 클래스는 내용을 변경할 수 없음(읽기만 가능)
//ex) String a = "a", b = "b";
// a = a + b => ab라는 변수값이 생김
//String 클래스의 주요 메서드
//char charAt(int index) 문자열에서 해당 위치에 있는 문자를 반환
String string1 = "ABCDE";
char ch1 = string1.charAt(3); //문자열 string의 4번째 문자 D를 ch에 저장
//int length() 문자열의 길이를 반환
string1.length(); //5
//String substring(int from, int to) 문자열에서 해당 범위(from ~ to)의 문자열을 반환(to는 포함 안됨)
//String substring(int from) to 생략시 from부터 끝까지 반환 (== String substring(int from, .length())
String string2 = "012345";
String temp1 = string2.substring(1,4);//string2에서 index번위 1~4의 문자를 반환
System.out.println(temp1);
//boolean equals(Obeject obj) 문자열의 내용이 같은지 확인
//char[] toCharArray() 문자열을 문자배열로 변환해서 반환
Arrays 클래스
//Arrays클래스
//배열의 비교와 출력 equals(), toString()
int[] arr = {0,1,2,3,4};
int[][] arr2D = { {11,12}, {21,22}};
//1차원 배열일 때는 toString(), 다차원 배열일때는 deepToString()
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr2D));
System.out.println(Arrays.deepToString(arr2D));
System.out.println();
String[][] str2D1 = {{"aaa","aaa"},{"AAA", "AAA"}};
String[][] str2D2 = {{"aaa","aaa"},{"AAA", "AAA"}};
//1차원 배열일 때는 equals(), 다차원 배열일 때는 deepEquals()
//System.out.println(str2D1 == str2D2); //사용하지 않음
System.out.println(Arrays.equals(str2D1, str2D2));
System.out.println(Arrays.deepEquals(str2D1, str2D2));
//배열의 복사 copyOf(), copyOfRange()
System.out.println();
//배열의 정렬 sort()
int[] arr1 = {3,4,2,1,0,-1};
Arrays.sort(arr1);
System.out.println(Arrays.toString(arr1));
728x90
'organize > 자바' 카테고리의 다른 글
자바 처음부터 다시 시작하기 8 (1) | 2024.04.20 |
---|---|
자바 처음부터 다시 시작하기 7 (1) | 2024.04.18 |
자바 처음부터 다시 시작하기 5 (0) | 2024.04.15 |
자바 처음부터 다시 시작하기 4 (0) | 2024.04.14 |
자바 처음부터 다시 시작하기 3 (0) | 2024.04.14 |