자바 입문 에서 진급 의 길 (5)

13556 단어
이전 글 에 서 는 자바 의 순환 구 조 를 소개 하 였 으 며, 이 장 에 서 는 자바 의 배열 을 살 펴 보 겠 습 니 다.
배열 은 모든 프로 그래 밍 언어 에 있어 중요 한 데이터 구조 중 하나 이 고 물론 서로 다른 언어 가 배열 에 대한 실현 과 처리 도 다르다.
배열
- 동일 한 데이터 형식의 원소 로 구 성 된 집합
- 원 소 는 선형 순서에 따라 배열 된다.선형 순서 란 첫 번 째 요 소 를 제외 하고 모든 요 소 는 유일한 전구 요 소 를 가지 고 마지막 요 소 를 제외 하고 모든 요 소 는 유일한 후계 요소 (하나 와 하나) 를 가진다.
- 요소 가 있 는 위치의 순서 번호 (아래 표) 를 통 해 표 지 를 해서 모든 요 소 를 방문 할 수 있 습 니 다 (아래 표 시 는 0 으로 시작 하고 최대 요소 개수 - 1)
배열 만 들 기
 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3         //    :          arr,                  arr
 4         int[] arr;
 5         arr = new int[5];
 6 
 7         //    :       ,              
 8         int[] arr1 = new int[5];
 9     }
10 }

팁: IDEA 편집기 에 fori 를 입력 하 십시오. 그리고 차 로 돌아 가면 생 성 이 돼 요.  for (int i = 0; i < ; i++) { } ,입력 foreach 그리고 차 로 돌아 가면 생 성 이 돼 요.  for (:) { } 
위의 코드 에서 우 리 는 배열 arr 를 설 명 했 지만 값 을 부여 하지 않 았 습 니 다. 그러면 시스템 은 모든 배열 요소 에 자동 으로 값 을 부여 합 니 다. 기본 값 은 0 입 니 다. 우 리 는 모든 요소 에 값 을 부여 할 수 있 고 배열 을 초기 화 할 때 값 을 부여 할 수 있 습 니 다. 다음 코드 는 다음 과 같 습 니 다.
 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3         //          arr,
 4         int[] arr = new int[5];
 5         for (int i = 0; i < arr.length; i++) {
 6             // arr        0
 7             System.out.println(arr[i]); // 0 0 0 0 0
 8         }
 9         
10         //          arr1,
11         int[] arr1 = new int[5];
12         arr1[0] = 0;
13         arr1[1] = 1;
14         arr1[2] = 2;
15         arr1[3] = 3;
16         arr1[4] = 4;
17         for (int i = 0; i < arr1.length; i++) {
18             //    arr1    
19             System.out.println(arr1[i]); // 0 1 2 3 4
20         }
21 
22         //          arr2,arr12    [0,1,2,3,4]
23         int[] arr2 = {0, 1, 2, 3, 4};
24         for (int i = 0; i < arr2.length; i++) {
25             //    arr2    
26             System.out.println(arr2[i]); // 0 1 2 3 4
27         }
28     }
29 }

 위의 코드 는 for 순환 출력 배열 의 모든 요 소 를 사용 합 니 다. for - each 출력 도 사용 할 수 있 습 니 다.
1 public class HelloWorld {
2     public static void main(String[] args) {
3         //          arr,
4         double[] arr = {0.1, 1.2, 2.3, 3, 4};
5         for(double i : arr){
6             System.out.println(i); // 0.1 1.2 2.3 3.0 4.0
7         }
8     }
9 }

우 리 는 한 배열 의 요 소 를 다른 배열 로 복사 할 수 있 습 니 다. 다음 과 같 습 니 다.
 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3         int[] arr1 = {0, 1, 2, 3, 4};
 4         int[] arr2 = new int[5];
 5         /**
 6          * arr1:   
 7          * 1:       
 8          * arr2:    
 9          * 0:         
10          * 4:         
11          * */
12         System.arraycopy(arr1, 1, arr2, 0, 4);
13         for (int i = 0; i < arr2.length; i++) {
14             System.out.println(arr2[i]); // 1 2 3 4 5 0
15         }
16     }
17 }

물론 복 제 는 범 위 를 초과 할 수 없습니다. 예 를 들 어 arr 2 의 length 를 3 으로 정의 합 니 다. 즉,  int[] arr2 = new int[3]; ,복사 할 개수 가 대상 배열 의 길 이 를 초과 하면 프로그램 이 잘못 보고 합 니 다.
배열 의 길 이 는 생 성 된 후에 바 꿀 수 없 지만 저 희 는 이 를 확대 할 수 있 습 니 다. 확장 이란 더 큰 새 배열 을 만 들 고 원래 배열 의 내용 을 복사 하 는 것 을 말 합 니 다.  Arrays.copyOf( ) 방법 이 실현되다.
 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3         int[] arr1 = {0, 1, 2, 3, 4};
 4         // arr1      arr1.length+1       
 5         arr1 = Arrays.copyOf(arr1, arr1.length + 1);
 6         for (int i = 0; i < arr1.length; i++) {
 7             System.out.println(arr1[i]); // 0 1 2 3 4 0
 8         }
 9 
10     }
11 }

물론 우 리 는 기 존의 배열 을 줄 일 수 있 습 니 다. 확대 배열 의 길 이 를 소스 배열 보다 작 게 하면 됩 니 다. 그러면 소스 배열 의 끝 에 더 많은 요 소 는 제 거 될 것 입 니 다.
자바 는 우리 에 게 간단 한 배열 정렬 방법 을 제공 합 니 다. Arrays.sort( ) 
 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3         int[] arr = {1,4,5,67,23,3};
 4         Arrays.sort(arr);
 5         for (int i = 0; i < arr.length; i++) {
 6             System.out.println(arr[i]); // 1 3 4 5 23 67
 7         }
 8 
 9     }
10 }

좋은 웹페이지 즐겨찾기