3.3 자바의 배열
배열(array = 인덱스 + 데이터)
- 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료 구조
- 배열은 같은 타입의 데이터들이 순차적으로 저장되는 공간
- 원소 데이터들이 순차적으로 저장됨
- 인덱스를 이용하여 원소 데이터 접근
- 반복문을 이용하여 처리하기에 적합한 자료 구조
- 배열 인덱스
- 0부터 시작
- 인덱스는 배열의 시작 위치에서부터 데이터가 있는 상대 위치
배열 선언, 생성, 초기화
- 배열에 대한 레퍼런스 변수 선언
int intArray[]; //또는
int [] intArray;
- 배열 생성
intArray = new int [5]; //5개의 정수 배열 할당
int intArray[] = new int [5]; //선언과 동시에 배열 생성
- 배열 초기화
int intArray[] = {4, 3, 2, 1, 0} //5개의 정수 배열 생성 및 값 초기화
예제 3-7
import java.util.Scanner;
public class practicemimi {
public static void main(String[] args) {
// 양수 5개를 입력받아서 배열에 저장하고, 제일 큰 수를 출력하라
Scanner scanner = new Scanner(System.in);
int intArray[] = new int [5];
int max = 0;
System.out.println("양수 5개를 입력하세요.");
for(int i=0; i<5; i++) {
intArray[i] = scanner.nextInt();
if(intArray[i] > max)
max = intArray[i];
}
System.out.print("가장 큰 수는 " + max + "입니다.");
scanner.close();
}
}
배열의 크기, length 필드
int intArray[];
intArray = new int[5];
int size = intArray.length; //size는 5
- 중요한 건 length랑 index 숫자 헷갈리지 않는 것
예제 3-8
import java.util.Scanner;
public class practicemimi {
public static void main(String[] args) {
// 배열의 length 필드를 이용하여 배열 크기만큼 정수를 입력받고, 평균을 출력하라.
Scanner scanner = new Scanner(System.in);
System.out.println("5개의 정수를 입력하세요.");
int intArray[] = new int [5];
double sum = 0.0;
for(int i=0; i<intArray.length; i++) {
intArray[i] = scanner.nextInt();
sum += intArray[i];
}
System.out.print("평균은 " + sum/intArray.length);
scanner.close();
}
}
배열과 for-each문
int [] n = {1, 2, 3, 4, 5}
int sum = 0;
for(int k:n) {
sum += k;
}
// for문으로 구성하면 다음과 같다.
int [] n = {1, 2, 3, 4, 5}
int sum = 0;
for(int i=0; i<n.length; i++) {
int k = n[i];
sum += k;
}
예제 3-9
public class practicemimi {
public static void main(String[] args) {
// for-each문을 활용하여 int [] 배열의 합을 구하고,
// String []배열의 문자열을 출력하라
int [] n = {1, 2, 3, 4, 5};
int sum = 0;
for(int k:n) {
System.out.print(k + " ");
sum += k;
}
System.out.println("합은 " + sum);
String [] f = {"사과", "배", "딸기", "포도", "체리"};
for(String s:f)
System.out.print(s + " ");
}
}
3.4 다차원 배열
2차원 배열
- 2차운 배열 선언
int intArray[][]; //또는
int [][] intArray;
- 2차원 배열 생성
intArray = new int [2][5]; //또는
int intArray = new int [2][5] //배열 선언과 생성을 동시에
- 2차원 배열의 구조
int i [][] = new int [2][5];
int size1 = i.length; //2차원 배열의 행의 개수 2
int size2 = i[0].length //0번째 행의 열의 개수 5
int size3 = i[1].length //1번째 행의 열의 개수 5
예제 3-10
public class practicemimi {
public static void main(String[] args) {
// 2차원 배열에 학년별로 1, 2학기 성적을 저장하고, 4년 전체 평점 평균을 구하여라.
double score [][] = {{3.3, 3.4},
{3.5, 3.6},
{3.7, 4.0},
{4.1, 4.2} };
double sum = 0;
for(int year=0; year<score.length; year++)
for(int term=0; term<score[year].length; term++)
sum += score[year][term];
int n=score.length;
int m=score[0].length;
System.out.println("4학년 전체 평점 평균은 " + sum/(n*m));
}
}
3.5 메소드의 배열 배열
예제 3-11
public class practicemimi {
static int[] makeArray() {
int temp [] = new int [4];
for(int i=0; i<temp.length; i++)
temp[i] = i+2; //배열 초기화 2 3 4 5
return temp;
}
public static void main(String[] args) {
int intArray[];
intArray = makeArray();
for(int i=0; i<intArray.length; i++)
System.out.print(intArray[i] + " ");
}
}
'Programming Languages > Java' 카테고리의 다른 글
[4장] 자바 생성자의 개념과 특징/ this 레퍼런스 (0) | 2021.04.10 |
---|---|
[4장] 객체 지향의 특징/ 자바의 클래스와 객체 (0) | 2021.04.10 |
[3장] Java 예외 처리 (0) | 2021.03.30 |
[3장] Java 반복문 (0) | 2021.03.30 |
[2장] 자바 조건문 (0) | 2021.03.24 |