JAVA/이론

20. [ JAVA ] 배열(array)

천재단미 2024. 12. 9. 15:50
728x90
반응형

1. 자료구조 (Data Structure)


자료구조는 컴퓨터 프로그램에서 데이터를 조직화, 저장, 조작하기 위한 특별한 형식입니다. 데이터 요소 간의 관계와 수행 가능한 연산을 정의합니다.
 
 
 
 
1) 자료구조의 유형

  • 선형 구조: 요소가 순차적으로 배열 (배열, 연결 리스트, 스택, 큐)
  • 비선형 구조: 순차적이지 않은 요소 배열 (트리, 그래프)

 

2) 주요 특징

  • 데이터 저장 및 구성
  • 효율적인 데이터 처리 및 조작
  • 메모리 관리
  • 빠른 접근을 위한 인덱싱

 
 
 
3) 대표적인 자료구조
 

  • 배열: 동일한 타입의 고정 크기 요소 모음
  • 연결 리스트: 각 노드가 다음 노드를 가리키는 순차적 구조
  • 스택: 후입선출(LIFO) 원칙
  • 큐: 선입선출(FIFO) 원칙
  • 트리: 루트 노드와 자식 노드를 가진 계층적 구조
  • 그래프: 노드와 간선으로 연결된 구조

 
 
 
4) 중요성

  • 효율적인 데이터 관리 및 접근
  • 알고리즘 성능 최적화
  • 컴퓨터 과학과 프로그래밍의 기본

 
자료구조는 컴퓨터 프로그램에서 데이터를 체계적으로 구성하고 처리하기 위한 핵심 개념입니다.
 
 
 
 
 
 

2. array

 
여러 값을 하나의 변수에 저장할 수 있는 기본적인 데이터 구조입니다. 배열은 고정된 크기를 가지며, 다음과 같은 주요 특징과 기능이 있습니다.
 
 
 
1) 배열 선언 
 




    타입 [  ] 변수이름  ;


    or


    타입  변수이름 [  ]  ;



    

    // 원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[  ]를 붙이면 됨
       [  ]는 타입 뒤에 붙여도 되고 변수이름 뒤에 붙여도 됨




 
 
2) 배열 생성
 



     타입 [  ] = 변수이름;                                 // 배열 선언 (참조변수 선언)





    변수이름 = new 타입 { 값1, 값2, 값3, 값4, 값5, 값6,....  } ;                     



                    //  배열 생성 (실제 저장공간을 생성)


         or


    타입 [  ] 변수이름 = new 타입 { 값1, 값2, 값3, 값4, 값5, 값6,....  }   ;     



                     //  배열의 선언과 생성을 동시에




 

 

 
 

(1) 예시
 
조건 1.  전체 총점을 구하시오.

 
 




        int totalengscore = 0;


        forint i = 0; i < 10; i = i + 1) {                                               


         //  forint i = 0; i < engscore.length ; i = i + 1 ) { 


                                      10; i   =    engscore.lengt 로 대체 가능 
                                    
           
            totalengscore = totalengscore + engScore[ i ];
        }

        System.out.println( totalengscore );



 

 
 
조건 2. 평균을 구하시오
 

 
 




    System.out.println( totalengscore / ( double ) engScore.length ) ;



 
 

 
 
 
(2) 예시 
 

 
 




        int [  ] num = new int [  ] { 1,2,3,4,5,6,7,8,9,10 };             

                         // int [  ] num = { 1,2,3,4,5,6,7,8,9,10 };    로 생략 가능 

        for (int i = 0; i < num. length; i = i + 1) {

                          //  for (int i = 0; i < 10 ; i = i + 1) {

            System.out.println( num[ i ] );
        }



 

 
 

 
 
(3) 예시 
 
 

 
 
 





        double[ ] date = new double [5];
        date[0] = 10.0;
        date[1] = 20.0;
        date[2] = 30.0;

        for (int i = 01 < date.length; i= i + 1 ){
            System.out.println( date[ i ] );
        }



 

 

 

  • 오류의 의미
    ArrayIndexOutOfBoundsException: 이 예외는 배열에 접근할 때 제공된 인덱스가 배열의 크기보다 크거나 음수일 때 발생합니다. 
    예를 들어, 길이가 5인 배열에 대해 인덱스 5에 접근하려고 하면 오류가 발생합니다. 유효한 인덱스는 0부터 4까지입니다.

 

  • 오류 발생 원인
    인덱스 범위 초과: 배열의 길이를 초과하는 인덱스를 사용하여 배열 요소에 접근하려고 할 때.
    루프 조건 설정 오류: 반복문에서 인덱스를 잘못 설정하여 배열의 경계를 넘어서는 경우.

 
 
 
 
 
현업에서는 Array를 잘 사용하지 않습니다.  현업에서는 ArrayList, HashMap를 많이 사용합니다. 
이유는 Array를 사용할 경우 추가를 할 수가 없어 처음부터 다시 진행하여야 하기 때문에 사용하지 않습니다. 
 
 
 
 
 

728x90
반응형
home top bottom
}