1. 배열
-> 배열 선언 및 생성
1) 배열에 대한 레퍼런스 변수 선언
2) 배열 생성 - 배열의 저장 공간 할당
-> 레퍼런스 치환과 배열 공유
int intArray[] = new int[5];
int myArray[] = intArray; // 레퍼런스 치환. myArray는 intArray와 동일한 배열 참조
-> 배열의 크기, length 필드
1) 배열이 생성되면 객체가 생성된다
2) 이 객체에는 배열의 저장 공간과 함께 배열의 크기 값을 가진 length 필드가 존재한다
int intArray[];
intArray = new int[5];
int size = intArray.length; // size는 5
-> 배열과 for - each 문
public class ForeachEx {
enum Week { 월, 화, 수, 목, 금, 토, 일}
public static void main(String[] args) {
int [] n = {1,2,3,4,5};
String names[] = {"사과", "배", "바나나", "체리", "딸기", "포도"};
int sum = 0;
for(int k : n) {
System.out.print(k + " ");
sum += k;
}
System.out.println("합은 " + sum);
for(String s : names) {
System.out.print(s + " ");
}
System.out.println();
for(Week day : Week.values())
{
System.out.print(day + "요일 ");
}
System.out.println();
}
}
2. 다차원 배열
-> 2차원 배열
public class ScoreAverage {
public static void main(String[] args) {
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[0].length; term++) {
sum += score[year][term];
}
}
int n = score.length;
int m = score[0].length;
System.out.println("4학년 전체 평점 평균은 " + sum/(n*m));
}
}
-> 비정방형 배열
public class SkewedArray {
public static void main(String[] args) {
int intArray[][] = new int[4][];
intArray[0] = new int[3];
intArray[1] = new int[2];
intArray[2] = new int[3];
intArray[3] = new int[2];
for(int i=0; i<intArray.length; i++) {
for(int j=0; j<intArray[i].length; j++) {
intArray[i][j] = (i+1)*10 + j;
}
}
for(int i=0; i<intArray.length; i++) {
for(int j=0; j<intArray[i].length; j++) {
System.out.print(intArray[i][j] + " ");
}
System.out.println();
}
}
}
-> 정방형 배열과 비정방형 배열
어떤 메소드가 배열을 매개변수로 받을 때,
배열이 정방형인지 비정방형인지는 표시되지 않기 때문에
항상 length 필드를 사용하여 각 행의 열의 개수를 파악하여야 한다.
3. 실습문제 4번
-> 풀이완료
public class Practice {
public static void main(String[] args) {
int n[][] = {
{1,2,3},
{1,2},
{1},
{1,2,3},
{1,2,3,4}
};
for(int i=0; i<n.length; i++) {
for(int j=0; j<n[i].length; j++) {
System.out.print(n[i][j] + " ");
}
System.out.println();
}
}
}
4. 실습문제 13번
<<<풀이 진행중>>>
import java.util.Scanner;
public class Practice_13 {
public static void main(String[] args) {
String course [] = {"C", "C++", "Python", "Java", "HTMLS"};
String grade [] = {"A", "B+", "B", "A+", "D"};
Scanner sc = new Scanner(System.in);
System.out.print("과목>>");
while(true ){
String courseName = sc.nextLine();
System.out.print(courseName + " 학점은 " + grade);
System.out.println();
if(courseName.equals("그만")) {
break;
}
}
}
}
5. 메소드에서의 배열 리턴
-> new로 할당받은 배열 메모리는 사라지지 않는다
-> 지역 변수인 temp만 사라진다
출처: 명품 JAVA Programming(개정 5판), 생능출판사
'학교 > 2-2학기(Java)' 카테고리의 다른 글
[5주차] 9/30(월) 강의내용 (0) | 2024.09.30 |
---|---|
[4주차] 9/25(수) 강의내용 (1) | 2024.09.25 |
[2주차] 9/11 강의내용 (0) | 2024.09.11 |
[2주차] 9/9(월) 강의내용 (0) | 2024.09.09 |
[1주차] 9/4(수) 강의내용 (1) | 2024.09.08 |
댓글