자바 기초 배열 초 상세 지식 총화

8147 단어 Java배열
1.1 차원 배열
1.자바 언어 중의 배열 은 일종 이다.기본 데이터 형식 에 속 하지 않 습 니 다.배열 의 부 류 는Object이다.
2.배열 은 실제 적 으로 하나의 용기 로 여러 요 소 를 동시에 수용 할 수 있다.(배열 은 데이터 의 집합 이다)
3.배열 에' '의 데 이 터 를 저장 할 수도 있 고' '의 데 이 터 를 저장 할 수도 있다.
4.배열 은 인용 형식 이기 때문에 배열 대상 은 에 저 장 됩 니 다.(셀 은 더미 에 저장 되 어 있다)
5.배열 에'자바 대상'이 저장 되 어 있 으 면 실제 적 으로 대상 의' ( )'이 저 장 됩 니 다.배열 에 자바 대상 을 직접 저장 할 수 없습니다.
6.배열 이 생 성 되면 자바 에서 규정 합 니 다 .배열 길이 변경 불가)
7.배열 의 분류:1 차원 배열,2 차원 배열,3 차원 배열,다 차원 배열...(1 차원 배열 이 많 고 2 차원 배열 은 가끔 사용 합 니 다!)
8.모든 배열 대상 은length속성(자바 자체)이 있 고 배열 의 요소 의 개 수 를 가 져 옵 니 다.
9.자바 의 배열 은 배열 의 요소 를 요구 합 니 다.
예 를 들 어 int 형식 배열 은 int 형식 만 저장 할 수 있 고 Person 형식 배열 은 Person 형식 만 저장 할 수 있 습 니 다.
10.배열 이 메모리 에 저 장 될 때 배열 의 요소 메모리 주소(저 장 된 모든 요 소 는 규칙 적 으로 배열 되 어 있 습 니 다)는 연속 적 입 니 다. 。(배열 특성)
11.모든 배열 은'첫 번 째 작은 사각형 의 메모리 주소'를 전체 배열 대상 의 메모리 주소 로 합 니 다.
(배열 의 첫 번 째 요소 의 메모리 주 소 는 전체 배열 대상 의 메모리 주소 입 니 다.)
12.배열 의 모든 요 소 는 아래 표 시 된 것 이 고 아래 표 시 는 0 에서 시작 하여 1 로 증가한다.마지막 요소 의 아래 표 시 는:length-1 입 니 다.
13.배열 이라는 데이터 구조의 장점 과 단점 은 무엇 입 니까?
  • 장점:아래 표 시 된 요 소 를 조회/검색/검색 할 때 효율 이 매우 높다.
  • 원인:
    첫째:모든 요소 의 메모리 주 소 는 공간 저장 소 에서 연속 적 입 니 다.
    둘째:모든 요소 의 유형 이 같 기 때문에 공간 을 차지 하 는 크기 가 같 습 니 다.
    셋째,첫 번 째 요소 의 메모리 주 소 를 알 고 모든 요소 가 공간 을 차지 하 는 크기 를 알 고 아래 표 시 를 알 기 때문에 수학 표현 식 을 통 해 아래 표 시 된 요소 의 메모리 주 소 를 계산 할 수 있 습 니 다.메모리 주 소 를 통 해 요 소 를 직접 찾 기 때문에 배열 의 검색 효율 이 가장 높다.
    주의:
    배열 에 100 개의 요 소 를 저장 하거나 100 만 개의 요 소 를 저장 하면 요소 조회/검색 에 있어 효율 이 같 습 니 다.
    배열 에서 요 소 를 찾 을 때 하나 도 찾 지 않 고 수학 식 으로 계산 되 기 때 문 입 니 다.계산 해 내다
    메모리 주소
  • 단점:
  • 첫째,배열 에 있 는 모든 요소 의 메모리 주소 가 연속 되 는 것 을 확보 하기 위해 배열 에서 무 작위 로 요 소 를 삭제 하거나 증가 할 때 효율 이 비교적 낮 습 니 다.무 작위 로 요 소 를 삭제 하면 뒤의 요소 가 통일 적 으로 앞으로 이동 하거나 뒤로 이동 하 는 작업 과 관련 되 기 때 문 입 니 다.
    둘째:배열 은 빅 데 이 터 를 저장 할 수 없습니다.메모리 공간 에서 매우 큰 연속 메모리 공간 을 찾기 가 매우 어렵 기 때문이다.
    주의:
    배열 의 마지막 요소 의 첨삭 은 효율 적 인 영향 을 미 치지 않 는 다.
    14.1 차원 배열 을 어떻게 설명/정의 합 니까?
    문법 형식:
    
    int[] array1;
    double[] array2;
    boolean[] array3;
    String[] array4;
    Object[] array5;
    15.어떻게 1 차원 배열 을 초기 화 합 니까?
    두 가지 방식 을 포함한다. 1 차원 배열, 1 차원 배열 이다.
    정적 초기 화 문법 형식:
    자바 스타일:
    
    int[] array = {100, 2100, 300, 55};
    C++스타일:
    
    int array[] = {100, 2100, 300, 55};
    동적 초기 화 문법 형식:
    자바 스타일:
    
    int[] array = new int[5]; //    5         。
    //      5    int    ,       0
    String[] names = new String[6]; //    6    String    ,       null。
    C++스타일:
    
    int array[] = new int[5]; //    5         。
    //      5    int    ,       0
    String names[] = new String[6]; //    6    String    ,       null。
    주의:
    동적 초기 화 를 사용 하면 배열 은 기본 값 을 부여 합 니 다!
    주의:
    c++와 의 차이
    
    c++    
    
    //     
    int a[10];
    int a[] = {1, 2, 3, 4};
    int a[100] = {1, 2, 3, 4};
    
    //     
    int *a = new int[10];
    16.1 차원 배열 의 특정한 요소 의 값 을 어떻게 수정 합 니까?
    문법 형식:
    
       [  ] =  ;
    
    eg.
    a[1] = 100;
    17.언제 정적 초기 화 방식 을 사용 하고 동적 초기 화 방식 을 사용 합 니까?
  • 배열 을 만 들 때 배열 에 어떤 구체 적 인 요 소 를 저장 하 는 지 확인 할 때 정적 초기 화 방식 을 사용 합 니 다.
  • 배열 을 만 들 때 앞으로 배열 에 어떤 데 이 터 를 저장 할 지 확실 하지 않 습 니 다.동적 초기 화 방식 으로 메모리 공간 을 미리 할당 할 수 있 습 니 다.
  • 18.방법 형 삼 은 1 차원 배열 로 어떻게 전 삼 합 니까?
    
    public void print(int[] num){
    	for (int i = 0; i < num.length; i++){
    		System.out.println(num[i]);
    	}
    }
    
      :
    int[] a = {1, 2, 3, 4};
    print(a);
    
    이렇게 전 삼 할 수도 있다.
    
         
    print(new int[]{1, 2, 3, 4});
    new int[]{1, 2, 3, 4}괜찮아.length배열 대상 이 야!
    19.배열 확장(효율 이 낮 음)
    방법:(System 클래스 의 방법)
    
    /**
    *@src	   
    *@srcPos	       
    *@dest	    
    *@destPos	        
    *@length	    
    */
    static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    
    eg.
    
    int[] a = {1, 2, 3, 4};
    int[] b = new int [10];
    System.arraycopy(a, 0, b, 0, aa.length);
    // a     0    ,    b     0    ,     a  
    2.2 차원 배열
    1.2 차원 배열 은 사실 하나 이 고 이 1 차원 배열 에서 의 모든 요 소 는 1 차원 배열 이다.
    2,3 차원 배열 은 무엇 입 니까?
    3 차원 배열 은 특수 한 2 차원 배열 로 이 2 차원 배열 에서 모든 요 소 는 1 차원 배열 이다.
    실제 개발 에서 가장 많이 사용 되 는 것 은 1 차원 배열 이다.2 차원 배열 도 거의 사용 되 지 않 는 다.3 차원 배열 은 거의 사용 하지 않 는 다.
    3.2 차원 배열 정적 초기 화
    
    int[][] array = {
            {1,1,1},
            {2,3,4,5},
            {0,0,0,0},
            {2,3,4,5},
            {2,3,4,5},
            {2,3,4,5},
            {2,3,4,5}
    };
    
    4.2 차원 배열 동적 초기 화
    eg.
    
    int[][] array = new int[3][4];
    5.2 차원 배열 의 요소 에 대한:읽 기와 수정.
    
    a[             ][       ]
    
    a[0][0]:   1        1   。
    
    a[3][100]:   4        101   。
    주의:
    a[3][100]에 게 그 중에서 a[3]는 하나의 전체 이다.100]은 앞의 a[3]집행 이 끝 난 결과 이 고 100 을 표시 합 니 다.
    6.방법 형 삼 은 2 차원 배열 로 어떻게 전 삼 합 니까?
    
    public void print(int[][] num){
    	for (int i = 0; i < num.length; i++){
    		for (int j = 0; j < num[i].length; j++){
    			System.out.println(num[i][j]);
    		}
    	}
    }
    
      :
     int[][] a = {{1,2,3,4},{4,5,6,76},{1,23,4}};
    print(a);
    
    이렇게 전 삼 할 수도 있다.
    
         
    print(new int[][]{{1,2,3,4},{4,5,6,76},{1,23,4}});
    new int[][]{{1,2,3,4},{4,5,6,76},{1,23,4}}괜찮아.length배열 대상 이 야!
    3.총화
    1.배열 의 장점 과 단점,그리고 왜 그런 지 이해 해 야 한다.
    첫째:공간 저장 소 에서 메모리 주 소 는 연속 적 입 니 다.
    둘째:모든 요소 가 차지 하 는 공간 크기 가 같 습 니 다.
    셋째:첫 번 째 요소 의 메모리 주 소 를 알 고 있 습 니 다.
    넷 째:아래 표 시 를 통 해 편 이 량 을 계산 할 수 있다.
    수학 표현 식 을 통 해 아래 표 시 된 위치 에 있 는 요소 의 메모리 주 소 를 빠르게 계산 할 수 있 습 니 다.
    메모리 주 소 를 직접 통 해 위 치 를 정 하면 효율 이 매우 높다.
    장점:검색 효율 이 높다.
    단점:무 작위 삭제 효율 이 낮 아 배열 이 빅 데 이 터 를 저장 할 수 없다.
    주의:배열 의 마지막 요소 의 삭제 효율 은 영향 을 받 지 않 습 니 다.
    2.1 차원 배열 의 정적 초기 화 와 동적 초기 화
    정적 초기 화:
    
    int[] arr = {1,2,3,4};
    
    Object[] objs = {new Object(), new Object(), new Object()};
    동적 초기 화:
    
    int[] arr = new int[4]; // 4   ,       0
    
    Object[] objs = new Object[4]; // 4   ,       null
    3.1 차원 배열 의 옮 겨 다 니 기
    
    for(int i = 0; i < arr.length; i++){
    	System.out.println(arr[i]);
    }
    4.2 차원 배열 의 정적 초기 화 와 동적 초기 화
    정적 초기 화:
    
    int[][] arr = {
    		{1,2,34},
    		{54,4,34,3},
    		{2,34,4,5}
    };
    
    Object[][] arr = {
    		{new Object(),new Object()},
    		{new Object(),new Object()},
    		{new Object(),new Object(),new Object()}
    };
    
    동적 초기 화:
    
    int[][] arr = new int[3][4];
    
    Object[][] arr = new Object[4][4];
    
    Animal[][] arr = new Animal[3][4];
    
    // Person    ,      Person    ,  Person         。
    Person[][] arr = new Person[2][2];
    ....
    
    5.2 차원 배열 의 옮 겨 다 니 기
    
    for(int i = 0; i < arr.length; i++){ //   for             。
    	//     for                 。
    	for(int j = 0; j < arr[i].length; j++){
    		System.out.print(arr[i][j]);
    	}
    	//   。
    	System.out.println();
    }
    
    6.배열 의 복사:System.array copy()방법의 사용
    배열 은 길이 가 확정 되면 변 하지 않 는 다 는 특징 이 있다.
    그래서 배열 의 길이 가 부족 할 때 확장 이 필요 하 다.확장 체 제 는 큰 배열 을 새로 만 들 고 작은 배열 의 데 이 터 를 큰 배열 로 복사 한 다음 에 작은 배열 의 대상 이 쓰레기 로 회수 되 는 것 이다.
    보충:
    배열 길이 0:
    
    int[] f = {};//     0
    System.out.println(f.length);//0
    
    int[] g = new int[0];//     0
    System.out.println(g.length);//0
    
    int[] h = null;
    //System.out.println(h.length);//     
    
    자바 기반 의 배열 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 자바 배열 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기