[ 게시판 만들기 - 2 (배열 복사) ]


 => 기존 게시판 예제 내용

 - 게시판 만들기 - 1 : http://momentoo.tistory.com/6



[ 게시판 소스 ]

 - 기존의 소스에 등록 시 문제점이었던 크기가 고정적인 부분을 배열 복사 로직으로 구현해 봤습니다.

 - 등록 이외에 소스들은 기존 소스와 같습니다.


1
2
3
4
5
6
7
8
9
10
11
if(boardArrCnt >= boardArr.length) { // 배열의 크기가 최대일     
    
    int arrPlus = 5// 배열의 크기를 늘려줄 임의의 값 설정
                    
    String[][] boardArrCop = new String[boardArr.length + arrPlus][]; // 기존 배열의 내용을 복사해 둘 새 배열 생성. [크기는 기존 배열 크기+임의의 값]
    for(int k = 0; k < boardArr.length; k++) {
        boardArrCop[k] = boardArr[k]; // 배열 내용 복사 로직
    }    
    boardArr = new String[boardArrCop.length][]; // 기존 배열 크기를 늘려 생성.
    boardArr = boardArrCop; // 복사해 둔 배열 값을 크기를 늘려준 배열에 복사
}
cs


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

[JAVA] 게시판 예제 - 3 (ArrayList, 기능 분리)  (0) 2016.09.02
[JAVA] Collection,Map 정리  (0) 2016.09.02
[JAVA] 게시판 예제 - 1 (배열, Scanner)  (0) 2016.08.24
[JAVA] Scanner 문자열 입력  (0) 2016.08.24
[JAVA] 배열  (0) 2016.08.24

[ JAVA의 배열에 대해서 알아보기 ]


Q. 배열은 왜 사용하는가?


 - 같은 종류의 데이터의 묶음이 필요할 때 사용하며, 많은 양의 데이터를 저장하고 관리할 때 유용하기에 사용이 됩니다.


Q. 배열의 특징과 장/단점?


 - 둘 이상의 변수를 선언할 때 유용합니다.

 - 많은 양의 데이터를 일괄적으로 저장하거나 관리할 때 유용합니다.

 - 1차원뿐만이 아닌 다차원 배열로도 사용이 가능합니다.

 - 배열의 가장 큰 단점으로는 배열 크기를 미리 지정해줘야하는 단점이 있습니다.

 - 또 다른 단점으로는 같은 데이터 타입을 사용해야 한다는 단점 등을 꼽을 수 있습니다.


[ JAVA 배열 예제 ]

 - 2차원 배열을 이용해 각 항목 값을 순차적으로 저장하고 해당 값을 반복문을 이용 Console창에 보여지는 예제입니다.

 - 평균을 나누기 위해 float으로 캐스팅을 사용했습니다.

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
32
33
34
35
36
37
public class ArrayExample {
    
    public static void main(String[] args) 
    {
          int[][] score = {{ 8590100 }, { 204080 }, { 303030 }, { 406040 }, { 905010 }};  // int형 배열 선언
          
          // 각 항목의 총합을 위한 값 초기화
          int koreanTotal = 0
          int englishTotal = 0
          int mathTotal = 0
 
          System.out.println("번호 국어 영어 수학 총점 평균"); 
          System.out.println("============================="); 
 
          for(int i=0; i < score.length; i++) { 
 
                // 총점의 총합을 위한 값 초기화
                int sum=0
                
                koreanTotal += score[i][0]; 
                englishTotal += score[i][1]; 
                mathTotal += score[i][2]; 
                
                System.out.print((i + 1+ "번 : "); 
                
                for(int j=0; j < score[i].length; j++) { 
                      sum += score[i][j]; 
                      System.out.print(score[i][j] + " "); 
                }
                
                // 평균 값을 구하기 위해 나눌 때 float으로 캐스팅.
                System.out.println(sum + " " + sum / (float)score[i].length); 
          } 
          System.out.println("============================="); 
          System.out.println("총점 : 국어 = > " + koreanTotal + " 영어 = > " + englishTotal + " 수학 = > " + mathTotal); 
    } 
}
cs



[ 예제 결과 ]

 - 값의 정렬은 배제하였습니다.



 - 참고 문헌 : Head First JAVA

 - 참고 사이트 : http://alecture.blogspot.kr/2011/04/array.html 

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

[JAVA] 게시판 예제 - 1 (배열, Scanner)  (0) 2016.08.24
[JAVA] Scanner 문자열 입력  (0) 2016.08.24
[JAVA] 데이터 타입  (0) 2016.08.18
[JAVA] Call by Reference, Call by Value  (0) 2016.08.18
[JAVA] 간단한 개념 정리 [JVM, GC]  (0) 2016.08.18

+ Recent posts