riboooo
Daily Traveler 리보
riboooo
전체 방문자
오늘
어제
  • 분류 전체보기 (71)
    • 프로젝트,발표 (2)
    • IT (67)
      • HTML ,CSS (3)
      • JAVA (22)
      • SQL (37)
      • 자료구조,알고리즘 (0)
      • PYTHON (4)
      • 보안 (0)
      • 서버 구축 (0)
      • GITHUB (1)
    • About ribo (2)
      • 커리어 (1)
      • 회고록 (1)
      • 버킷리스트 (0)
      • 일기 (0)
      • 잡담 (0)
    • 책 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • django설계
  • 시간 중복 활용
  • select
  • non-prewise
  • 네이버핵데이
  • ORACLE 숫자 함수
  • ORACLE 조건문
  • SQL
  • 자바코딩컨벤션
  • ORACLE CASE
  • INSTALLED_APPS
  • oracle
  • 오라클
  • prewise
  • Django
  • join
  • inspectdb
  • ORACLE 날짜 관련 함수
  • ORACLE NULL 함수
  • java

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
riboooo

Daily Traveler 리보

IT/JAVA

[JAVA] 다차원 배열

2020. 7. 8. 18:29

배열안에 배열이 있는 형태이다

2차원 배열

int[ ][ ] array2 = new int[2][3];

배열안에 배열이 들어있는 형태

int[][] arr2 ;   // 2차원배열
int[][][] arr3;  // 3차원배열

int arr4[][] = new int[][]{{1,2,3},{4,5,6}};   //2칸짜리 배열각칸에 3칸짜리배열넣기

int[] arr5[] = { {1,2,3},
                                 {4,5,6},
                                 {7,8,9}};  //초기화하며 선언

// 가변배열
int[][] arr6 = new int[3][];  // 일부의 크기만 지정 가능, 
                arr6[0] = new int[3];
                arr6[1] = new int[5];
                arr6[2] = new int[10];

2차원배열 접근

2차원 인덱스까지 접근해서 사용한다

array2[0][1];

array2[0] = 10; // 값을 저장할 수 없다
array2[0] = new int[5]; //배열은 저장 가능
array2[0][1] = 10;
array2[1][0] = 100;
array2[1][1] = 1000; // 2차원까지 접근해서 값 저장

2차원 배열의 길이

.length를 이용해서 하려면 인덱스로 접근해야한다

System.out.println(array2[0].length)

int[][] arrlen = new int[4][4];
        System.out.println(arrlen[0].length); // 4

for(int i = 0; i< arr4.length; i++){
            for(int j = 0; j< arr4[i].length; j++){
                System.out.println(arr4[i][j]);
            }
        }
  • SCORE

      package d_array;
    
      import java.util.Arrays;
    
      public class Score {
    
          public static void main(String[] args) {
              /*
               * 우리반 모두의 국어 영ㅇ ㅓ수학 사회 과학 오라클 자바 점수를 0~100 까지 랜덤생성해주시고 아래와 같이추력해주세요
               */
    
              String[] name = { "강지원", "김동민", "김동희", "김민지", "김용진", "김인혁", "김진용",
                      "박범영", "박병규", "배현태", "심민규", "여인욱", "이나정", "이승민", "이영섭", "이윤혜",
                      "이지향", "임정혁", "임형묵", "장성보", "정선영", "정회립", "차경석", "최준영", "허지영" };
    
              int[][] scores = new int[25][7]; // [학생수][과목수]
              int[] sum = new int[scores.length]; // 합계
              double[] avg = new double[scores.length]; // 평균
              int[] rank = new int[scores.length]; // 석차
              int[] sub_sum = new int[7]; // 과목별 총점
              double[] sub_avg = new double[7]; // 과목별 평균
    
              // for 점수 랜덤 지정 + 개인합계, 과목별 총점,평균 구하기
              for (int i = 0; i < scores.length; i++) {
                  for (int j = 0; j < scores[i].length; j++) {
                      scores[i][j] = (int) (Math.random() * 101);
                      sum[i] += scores[i][j];
                      rank[i] = 1;
                      sub_sum[j] += scores[i][j];
                  }
                  avg[i] = sum[i] / (double) scores[i].length;
    
              }
              // 석차구하기
              for (int i = 0; i < sum.length; i++) {
                  for (int j = 0; j < sum.length; j++) {
                      if (sum[i] < sum[j]) {
                          rank[i]++;
                      }
                  }
              }
              // 과목 평균 구하기
              for (int i = 0; i < sub_avg.length; i++) {
                  sub_avg[i] = sub_sum[i] / (double) scores.length;
              }
              // 출력 하기
    
              System.out
                      .printf("이름\t 국어\t 영어\t 수학\t 사회\t 과학\t ORACLE\t Java\t 합계\t 평균\t 석차\n");
              // for (int i = 0 ; i<scores.length; i++){
              // System.out.printf("%s\t", name[i]);
              // for(int j = 0; j< scores[i].length; j++){
              // System.out.printf("%d\t",scores[i][j]);
              // }
              // System.out.printf("%d\t", sum[i]);
              // System.out.printf("%.2f\t", avg[i]);
              // System.out.printf("%d\n", rank[i]);
              // }
    
              // 석차료 정렬
              for (int sortrank = 1; sortrank < scores.length + 1; sortrank++) {
    
                  for (int i = 0; i < scores.length; i++) {
                      if (rank[i] == sortrank) {
                          System.out.printf("%s\t", name[i]);
                          for (int j = 0; j < scores[i].length; j++) {
                              System.out.printf("%d\t", scores[i][j]);
                          }
                          System.out.printf("%d\t", sum[i]);
                          System.out.printf("%.2f\t", avg[i]);
                          System.out.printf("%d\n", rank[i]);
                      }
                  }
              }
    
              // 과목별 합 , 평균 출력
              System.out.printf("과목합계\t");
              for (int j = 0; j < sub_sum.length; j++) {
                  System.out.printf("%d\t", sub_sum[j]);
              }
              System.out.println();
    
              System.out.printf("과목평균\t");
              for (int j = 0; j < sub_avg.length; j++) {
                  System.out.printf("%.2f\t", sub_avg[j]);
              }
    
          }
      }
반응형

'IT > JAVA' 카테고리의 다른 글

[JAVA] 예외처리  (0) 2022.01.11
[JAVA] JVM ( java virtual machine )  (0) 2022.01.11
[JAVA]배열  (0) 2020.07.01
[JAVA] Math.round() , Math.random()  (0) 2020.06.29
[JAVA] 반복문 for, while, do-while, 이름붙은 반복문, continue, break  (0) 2020.06.29
    riboooo
    riboooo
    최준영 https://github.com/riboooo

    티스토리툴바