-
Java 배열 마스터하기: 초보자도 쉽게 이해하는 Array 완벽 가이드☕Java 2024. 12. 9. 14:55728x90
1. 자바 배열(Array)이란?
자바에서 배열은 같은 타입의 여러 변수를 하나의 이름으로 그룹화하여 관리하는 객체입니다. 배열을 사용하면 데이터를 효율적으로 저장하고 접근할 수 있어 프로그래밍에서 매우 중요한 역할을 합니다.
2. 배열 선언과 초기화
배열 선언int[] numbers; // 정수형 배열 선언 String[] names; // 문자열 배열 선언
배열 초기화
numbers = new int[5]; // 5개의 정수를 저장할 수 있는 배열 생성 names = new String[]{"김철수", "이영희", "박민수"}; // 초기값과 함께 배열 생성
배열 요소에 접근하기
배열의 각 요소는 인덱스를 통해 접근할 수 있습니다. 인덱스는 0부터 시작합니다.System.out.println(names[0]); // "김철수" 출력 names[1] = "홍길동"; // 두 번째 요소 변경
배열의 길이
배열의 길이는 length 속성을 통해 알 수 있습니다.System.out.println(names.length); // 3 출력
배열 순회하기
for 루프 사용for (int i = 0; i < names.length; i++) { System.out.println(names[i]); }
for-each 루프 사용
for (String name : names) { System.out.println(name); }
다차원 배열
자바에서는 다차원 배열도 지원합니다. 가장 흔한 예는 2차원 배열입니다.int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
배열의 장단점
장점
데이터를 효율적으로 관리할 수 있습니다.
인덱스를 통해 빠르게 접근할 수 있습니다.
단점
크기가 고정되어 있어 유연성이 떨어집니다.
중간에 요소를 삽입하거나 삭제하기 어렵습니다.// 학생 점수관리 프로그램을 만든다. // 학생 3명의 수학 점수를 처리 // 첫번째 학생은 70점 // 두번째 학생은 90점 // 세번째 학생은 77점 // int math1 = 70; // int math2 = 90; // int math3 = 77; // 전체 학생의 총점을 구해라 // System.out.println(math1+math2+math3); // System.out.println((math1+math2+math3)/3.0); // 100명의 데이터(수학점수) / 여러 데이터를, 변수1개로 처리 좀 하자. // Data Structure // 자바 기본 문법에서 제공하는 것 : 뭐냐하면 Array // 결론 : Array는 현업에서 잘 사용하지 않는다. 왜냐면 후져서 // 예 10명의 배열을 지정 해놨는데 추가적인 칸을 만들수 없어서 // 대안 : 현업에서는 ArrayList, HashMap // 예: 수학점수가 같은 학생 3명이 있는 경우 int 3번을 써서 변수를 만드는게 아닌 // 변수이름 "수학점수" 라는것을 하나 만들고 그 메모리 안에 데이터를 쪼개 넣자. // (변수이름) → 메모리칸 |70점|77점|90점| // array(배열 [] ) 로 처리한다 → 여러 데이터를 변수 1개로 처리한다/ // 몇 개의 데이터를 저장할지, 데이터의 갯수를 설정해야 한다. // 비어 있는 공간을 만든다 int[] mathScore = new int[3]; // ← 3칸짜리 방을 mathScore 만들었다 // 첫번째 데이터 칸은 0, 두번째 방은 1, 세번째 방은 2 // 데이터를 넣는다 // 인덱스 mathScore[0] = 70; // ← 첫번째 방에 70 이라고 저장해라 // 두번째 데이터 넣기 mathScore[1] = 90; // ← 두번째 방에 90 이라고 저장해라 // 세번째 데이터 넣기 mathScore[2] = 77; // ← 세번째 방에 770 이라고 저장해라 // 저장된 데이터를 하나씩 끄집어 내서, 더한다. // 배열에 저장된 데이터를 가져오는 방법 // 배열의 첫번째 데이터 가져오기 System.out.println(mathScore[1]); // 3을 쓸 경우 나오는 에러 // 전체 총점을 구하시오. // 메스스코어를 다 써서 구하기 힘드니 토탈 스코어라는 변수를 하나 만들자 int totalScore = mathScore[0]+mathScore[1]+mathScore[2]; System.out.println(totalScore); // 전체 평균을 구하시오 System.out.println(totalScore/3.0); // 평균도 변수를 만들자 double avgScore = totalScore/3.0; // ←소수점이니까 더블로 저장
int[] mathScore = new int[3]; // ← 3칸짜리 방을 mathScore 만들었다 mathScore[0] = 70; // ← 첫번째 방에 70 이라고 저장해라 mathScore[1] = 90; // ← 두번째 방에 90 이라고 저장해라 mathScore[2] = 77; // ← 세번째 방에 770 이라고 저장해라 System.out.println(mathScore[3]); // 3을 쓸 경우 나오는 에러
오류
"C:\Program Files\Java\jdk-17\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.3\lib\idea_rt.jar=58765:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\USER\Documents\nhchoi\Github\ArrayTest\out\production\ArrayTest ArrayTest
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at ArrayTest.main(ArrayTest.java:39)
배열의 인덱스가 배열의 길이를 벗어났을 때 발생하는 예외입니다
이 경우, 배열의 길이가 3인데 인덱스 3에 접근하려고 했기 때문에 발생했습니다.
배열 인덱스는 0부터 시작하므로, 길이가 3인 배열의 유효한 인덱스는 0, 1, 2입니다
// 조건 학생 10명의 영어 점수가 있습니다. 70, 77, 100, 97, 43, 66, 88, 69, 58, 91 // 문제1. 배열을 만드세요. // 문제2. 데이터를 저장하세요 int[] engScore = {70, 77, 100, 97, 43, 66, 88, 69, 58, 91}; System.out.println(engScore[3]); // 문제3. 총합을 구하세요 // System.out.println(engScore.length); int total = 0; for (int i = 0 ;i< 10 ; i++){ System.out.println(total = total+engScore[i]);
위에 문제 풀이해서 설명을 써보자
728x90'☕Java' 카테고리의 다른 글
"자바의 클래스와 객체: 개념부터 활용까지 쉽게 이해하기" (1) 2024.12.10 Java 에서 함수 만들기 : 초보자를 위한 단계별 설명 (1) 2024.12.09 Java 반복문 마스터하기: 초보자도 쉽게 이해하는 for, while, do-while (0) 2024.12.08 Java 조건문 마스터하기 : if, else, switch 완벽 가이드 (0) 2024.12.08 Java 변수란 무엇일까? (0) 2024.12.06