[21.07.09] 배열

3102 단어 JavaJava

타인과 나를 비교하지말자


배열

배열은 가상공간(메모리) 에 대한 개념이 필요해요. 컴퓨터로 볼 수 있는 모든 미디어는 전부 특정 메모리 공간을 차지합니다.
배열도 생성되면서 특정 주소값이 부여됩니다. 배열의 주소값은 메모리 주소를 의미하며 내가 쓴 변수가 어디에 저장되어있는지 알 수 있습니다.

타입[] 변수이름 = new 타입[배열길이];
타입[] 변수이름 = {값1, 값2, ...};
같은 타입의 변수들을 하나의 목록으로 저장하고 데이터를 유동적으로 바꾸기 유용해 배열을 사용합니다.

  • 배열이름.length : 배열의 길이를 나타낸다.

배열은 저장 순서가 정해져 있어요 배열의 순서를 인덱스(index) 라고합니다. 인덱스는 0부터 시작해요 그래서 인덱스의 길이는 배열길이-1이라는 점~

최댓값, 최솟값 구하기

Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] scores=new int[n];

for(int i=0;i<scores.length;i++) {
	System.out.println("입력>");
	scores[i]=sc.nextInt();
}
sc.close();

int max=Integer.MIN_VALUE;  
for(int i=0;i<scores.length;i++) {
	if(max<scores[i]) {
		max=scores[i];
	}
}
int min=Integer.MAX_VALUE;
for(int j=0;j<scores.length;j++) {
	if(scores[j]<min) {
		min=scores[j];
	}
}
System.out.println("최댓값 = "+max);
System.out.println("최솟값 = "+min);
  • Integer.MAX_VALUE : int타입에 들어갈 수 있는 최댓값
  • Integer.MIN_VALUE : int타입에 들어갈 수 있는 최솟값

양수인지 음수인지 모를 어떤 int값들의 크기비교로 최댓값, 최솟값을 구하려면 내가 입력할 수 있는 최대, 최소의 값을 가정해놓고 비교하면 됩니다 방법은 다양해용

for-each 구문

for(타입 변수이름 : 배열) { 본문; }

향상된 for문입니다. 배열에 있는 모든 데이터에 접근할 때 사용하는데요 변수 타입은 배열과 동일한 타입으로 선언해야해요

for(int i=0;i<arr.length;i++) {
	System.out.println(arr[i]);
}
for(int x : arr) {
	System.err.println(x);
}

두 코드는 같은 결과를 출력해요! for-each를 쓴게 훨씬 코드가 짧아요

문자열 배열

문자열배열[n].length() : 인덱스 n의 문자열 길이를 나타낸다.

2차원 배열

타입[][] 변수이름 = {{배열1}, {배열2}, ...};

1차원 배열을 원소로 갖는 배열입니다. 2차원 공간을 표현할 때 (x,y) 좌표 형식으로 나타낼 수 있어요. 행렬같은 모양을 생각하면 쉬워요

변수이름.length : 전체 열 개수
변수이름[n].length : 인덱스 n열의 전체 행 개수

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

2차원 배열 전체에 접근하려면 중첩반복문을 써야합니다

그럼 for-each로 접근하려면 어떻게 해야할까요?

for(String[] a : arr) {
	for(String b : a) {
		System.out.print(b+ " ");
	}
	System.out.println();
}

짠 문자열 2차원 배열 ->문자열 1차원 배열 -> 문자열으로 접근하면 돼요
인덱스로 무엇을 해야할때는 for 데이터 전체를 가져올땐 for-each를 사용해봅시다


단축키 tip💡

  • ctrl+shift+o : import 생성하기

코로나 악화로 4단계로 올라가 학원이 2주간 온라인 수업을 병행하게 되었어요 저도 통학시간이 1시간 넘게 걸릴정도인데다 학원이 수도권 중심가라 무섭긴하지만 집에선 집중이 잘 안되기때문에 방역수칙 인원맞춰서 학원에 계속 나오기로 결정했어요.

좋은 웹페이지 즐겨찾기