Java/Java 문법 연습

배열 연습

구너드 2023. 5. 12. 22:23
import java.lang.reflect.Array;
import java.util.Arrays;

public class 배열_01 {
public static void main(String[] args) {
// int[] age = new int[];
// 배열의 선언과 생성
int[] age = new int[5];
age [3] = 15;
System.out.println(age [3]);

// age [1] = 5;
// int tmp = 0;
// tmp = age [3];
// age [3] = age [1];
// age [1] = tmp;
//
// System.out.println(age[3]);
// System.out.println(age[1]);
// 한 번 해본 배열 내 위치 바꾸기

System.out.println(age.length);

System.out.println();

int[] arr = new int [10];
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "] = " + arr[i]);

System.out.println();
}
int [] num = {1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int j = 0; j < num.length; j++) {
System.out.println("num [" + (j + 1) +"] =" + num [j]);
// System.out.println(Arrays.toString(num));
// for 문을 벗어나지 않아서 반복수행됨
}
System.out.println(Arrays.toString(num));

System.out.println();

int sum = 0;
float avg = 0;

int[] score = {100, 80, 75, 90, 82};

for(int i = 0; i < score.length; i++) {
// sum += i;
sum += score[i];
avg = (float)sum / score.length;
}
System.out.println(sum);
System.out.println(avg);
// 이거는 잘한 거 같음 float 형변환도 그렇고 sum의 값을 length로 나누어준 점. 다만 계속해서 for문 안에 프린트ln을 입력하는 점을 조심할 것

System.out.println();


int[] value = {500, 700, 1000, 8000, 5000};
// int max = 0, min =0;
int max = value[0], min = value[0];
// 인덱스 코드 0 value로 설정해야 값을 순차적으로 돌아가면서 비교 가능

for (int i = 0; i < value.length; i++) {
if (value [i] > max) {
max = value [i];
} else if (value [i] < min) {
min = value [i];
}

}
System.out.println("max =" + max);
System.out.println("min =" + min);
// 처음 max min 값을 value [0]로 설정하지 않은 것을 빼면 잘했음

System.out.println();

int[] num1Arr= {1, 2, 3, 4, 5, 6, 7};
for (int i = 0; i < num1Arr.length; i++) {
int num1=(int)(Math.random() * 7);
int tmp = num1Arr [0];
num1Arr [0] = num1Arr [num1];
num1Arr [num1] = tmp;
}
System.out.println("결과 ="+Arrays.toString(num1Arr));
// 랜덤으로 숫자 섞기는 다시 한 번 볼 것
}
}

import java.util.Arrays;

public class 배열_02 {
public static void main(String[] args) {
String str = "ABCDE";
char ch = str.charAt(3);
System.out.println(ch);

String str1 = str.substring(0, 3 );
System.out.println(str1);
// 0~3에서 3은 포함이 되지 않음
String str2 = str.substring(1);
System.out.println(str2);

String str3 = str.substring(1, str.length());
System.out.println(str3);

char[] chArr = str.toCharArray();
System.out.println(Arrays.toString(chArr));

System.out.println();

String[] strArr = {"피자", "치킨", "햄버거", "핫도그"};
System.out.println(Arrays.toString(strArr));
// System.out.println(strArr);
// 요구하는 값이 나오지 않음.

String[] strArr2 = new String [4];
System.out.println(Arrays.toString(strArr2));
// 참조형이기 기본값은 null로 초기화

System.out.println();

int[][] score =new int[2] [5];
int[][] score1 = {
{88, 35, 100},
{84, 60, 55},
{100, 99, 72},
{33, 54, 77}
};
System.out.println(score.length);
System.out.println(score1.length);
System.out.println(score[1].length);
System.out.println(score1[2].length);

String[][] strArr17 = {
{"AA", "BB", "CC"},
{"aa", "bb", "cc"}
};
String[][] strArr24 = {
{"AA", "BB", "CC"},
{"aa", "bb", "cc"}
};
System.out.println(Arrays.equals(strArr17, strArr24));
// 2차원 문자열 배열에서는 deepEquals를 써야함
System.out.println(Arrays.deepEquals(strArr17, strArr24));

System.out.println();

int[] arr = {2, 1, 4, 3, 0};
int[] arr2 = Arrays.copyOf(arr, arr.length);
System.out.println(arr2);
// 원하는 값이 나오지 않을 걸 알기 때문에 고민
System.out.println(Arrays.toString(arr2));

int[] arr3 = Arrays.copyOf(arr, 7);
System.out.println(Arrays.toString(arr3));
int[] arr4 = Arrays.copyOfRange(arr, 2, 4);
System.out.println(Arrays.toString(arr4));

Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}