달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'C. Java'에 해당되는 글 37

  1. 2017.07.02 java 자바 배열
2017. 7. 2. 21:33

java 자바 배열 C. Java2017. 7. 2. 21:33

배열을 선언하는 형식:  -  new 연산자를 이용하는 방법

                                    -  해당 배열의 내용을 직접 초기화 하는 방법
 
 
 
1. 배열의 초기화 
   : 배열에 값을 주어 초기화 할수도 있고, 초기화 해주지 않아도
   배열은 생성과 동시에 자동적으로 자신의 타입에 해당하는 기본값으로 초기화 된다.
 
----------------------------------------------------------
    자료형                      기본값(초기값)
----------------------------------------------------------
    boolean                   false
    char                       '\u000'  -> NULL문자
    byte,short,int             0
    long                         0L
    float                         0.0f
    double                      0.0d 또는 0.0
    참조형 변수               null
 
 
 
 
2. 1차원 배열
 
  형식:  자료형 []배열명 = new 자료형 [배열의 원소개수];    

            ex)  int  [] aaa = new int [5];  -> aaa.length는 5이다.
            ex)  int  [] bbb;                     -> int형 타입의 참조형 배열 bbb(aaa,ccc)를 선언하고
                  bbb = new int [5];    인스턴스의 참조변수를  담을수 있는 배열을 생성한다.
                                                여기서는 bbb[0],bbb[1]......bbb[4] 이렇게(0부터시작) 5개생성
 
            ex)  int  [] ccc = {2,5,7,3,1};             -> 초기화시에는 개수 생략
            ex)  int  [] ccc = new int[] {2,5,7,3,1};
 
 
            ex)  String  [] ddd =  { new String("kim"),  new String("park") };
            ex)  String  [] ddd =  new String[] { new String("kim"),  new String("park") };

            ex)  String  [] ddd =  { "kim","park" };   
                   
       참고) -> String는 new연산자를 통해서 인스턴스를 생성해야하지만 " "를 사용해서 간략히
                   표현하는것을 특별히 허용한다.
 
 
       참고) -> aaa.length는 5이다. : 배열도 객체이기 때문에 멤버변수와 객체를 가지고 있으면
                    이중 멤버변수 length는
  배열의 크기에 대한 정보를 담고 있다.
 
 
 
 3. 다차원배열(2차원배열)
 
  형식:  자료형 [][]배열명 = new 자료형 [ ][ ];
 
           ex)  int  [][]score  = new int [3][2];       -> 3행2열의 2차원 배열을 생성한다.
 

   
 
 
4. 가변배열    : 2차원 이상의 다차원 배열을 생성할때 전체 배열 차수중 마지막 차수의 크기를
                       지정하지 않고,
추후에  각기 다른 크기의 배열을 생성하는 배열
 
 
  ex)  int  [][] intAry = new int [4][ ];                       -> 마지막 차수를 지정하지 않는다.
         intAry[0] = new int[1];                                   -> 각기 다른 크기의 배열을 생성
         intAry[1] = new int[2];
         intAry[2] = new int[3];
         intAry[3] = new int[4]; 
 
 
  ex) int [][] intAry = {  {0},{1,2},{3,4,5},{6,7,8,9}  };



 참고)  intAry.length< /FONT > 는 4이고
          intAry[0].length< /FONT > 는 1이고,
          intAry[1].length< /FONT > 는 2이고,
          intAry[2].length< /FONT > 는 3이고,
          intAry[3].length< /FONT > 는 4이다.


ex)   int [] [] m22 = new int [3][]             -> m22.length 는 3
        m22[0] = new int[3];                       -> m22[0].length 는 3 
        m22[1] = new int[4];                       -> m22[1].length 는 4
        m22[2] = new int[5];                       -> m22[2].length 는 5
 
 
       for (int i=0; i<m22.length ; i++)< /FONT>
      {
           for( int j=0; j<m22[i].length;j++)< /FONT>
         {
 
         }
      }
 
 
 
5. 배열의 복사    : 배열은 한번 생성하면 그 크기를 변경할 수 없기 때문에 더 많은 저장공간이 필요하다면,
                          보다 큰 배열을 새로 만들고 이전 배열로 부터 내용을 복사해야한다.
                          ( for문이나 System 클래스의 arraycopy()를 사용할수 있다.)
 
    System.arrayCopy(  arr1,  0 ,     arr2,  0, arr1.length);
 
->                            arr1[0] 에서 arr2[0]으로 arr1.length개의 데이타를 복사해라.
 
 


:
Posted by sfeg