자바 기본 배열 상세 설명

12064 단어 자바배열사용법
머리말
우 리 는 배열 이라는 개념 을 이해 하기 전에 다음 과 같은 몇 가지 문 제 를 먼저 생각한다.
만약 우리 가 두 개의 데이터 가 필요 하 다 면,직접 두 개의 변 수 를 만 들 면 된다.

int a;
int b;
다섯 개의 데이터 가 필요 하 다 면 다섯 개의 변 수 를 만 들 수 있 습 니 다.

int a;
int b;
int c;
int d;
int f;
그러나 100 개,심지어 1 만 개의 데이터 가 필요 하 다 면 우 리 는 만 개의 변 수 를 만 들 것 인가?분명히 이것 은 비 현실 적 이다.이 럴 때 는 우리 의 배열 이 작용 해 야 한다!대량 변 수 를 만 드 는 것 을 도와 주세요.
위 에서 알 수 있 듯 이 배열 의 본질은 바로 우리 가 같은 유형의 변 수 를 대량으로 만 들 수 있 도록 하 는 것 이다!
1.배열 의 개념
 배열 은 하나의 데이터 구조 로 같은 유형의 집합 을 저장 하 는 데 사용 된다.즉,배열 에 포 함 된 변 수 는 반드시 같은 유형 이 어야 한 다 는 것 이다!
2.배열 만 들 기
기본 문법 은 다음 과 같다.

//     
    []      = new      []{     };
//     
    []      = {     };
코드 예제

public class TestDemo {
    public static void main(String[] args) {
        //     
        //    []      = new      []{     };
        int[] arr1 = new int[]{1,2,3};
        //     
        //    []      = {     };
        int[] arr2 ={1,2,3};
    }
}
메모:정적 초기 화 시 배열 요소 의 갯 수 는 데이터 초기 화 형식 과 같 습 니 다!
만약 당신 이 다른 언어 를 배 웠 다 면,예 를 들 어 C 언어,c 언어의 배열 생 성 은 이 렇 습 니 다.

        []={     };

  : int arr[] = {1,2,3};
사실 자바 에서 도 이렇게 할 수 있 지만 이렇게 쓰 는 것 을 추천 하지 않 습 니 다.자바 는 강 한 유형 언어 입 니 다.변수 앞 에 유형 이 있 습 니 다.한눈 에 알 수 있 습 니 다!
3.배열 의 사용
우 리 는 예 를 들 어 배열 의 길 이 를 어떻게 얻 습 니까?
만약 당신 이 C 언어 를 배 운 적 이 있다 면,틀림없이 말 할 것 입 니 다. 

int sz = sizeof(arr) / sizeof(arr[0]);
사실 자바 는 c 언어 보다 더 편리 하 다.'배열 이름.length'를 직접 사용 하면 배열 의 길 이 를 구 할 수 있다.
코드 는 다음 과 같 습 니 다:

public class TestDemo {
    public static void main(String[] args) {
         int[] arr ={1,2,3};
         int len = arr.length;
        System.out.println(len);//3
    }
}
이 코드 의 실행 결 과 는 3 임 에 틀림없다.
그러면 우 리 는 어떻게 배열 요 소 를 방문 합 니까?
다음 코드 를 살 펴 보 겠 습 니 다.

public class TestDemo {
    public static void main(String[] args) {
         int[] arr ={1,2,3};
         int len = arr.length;
        System.out.println(len);//3
        System.out.println(arr[0]);//1
        System.out.println(arr[1]);//2
        System.out.println(arr[2]);//3
    }
}
분명 한 것 은 배열 이름[배열 요소 아래 표시]을 직접 사용 하여 배열 요 소 를 방문 하 는 것 이다.그런데 문제 가 생 겼 어 요.왜 arr[0]은 1 이 고 arr[1]은 2 예요?왜 아 라[1]가 아니 라 1 아 라[2]가 2 야?
여기 서 우 리 는 배열 의 아래 표 지 는 0 에서 시작 되 는 것 이지 1 에서 시작 되 는 것 이 아니 라 는 결론 을 얻 었 다.
arr[3]에 방문 해 보 겠 습 니 다.

public class TestDemo {
    public static void main(String[] args) {
         int[] arr ={1,2,3};
         int len = arr.length;
        System.out.println(len);//3
        System.out.println(arr[0]);//1
        System.out.println(arr[1]);//2
        System.out.println(arr[2]);//3
        System.out.println(arr[3]);
    }
}


우 리 는 앞에서 우리 가 예 상 했 던 것 처럼 출력 결과 가 모두 정확 하 다 는 것 을 알 았 으 나,유독 빨 간 글자 한 줄 이 나 타 났 다.이 빨 간 글 자 는 배열 이 경 계 를 넘 었 다 는 것 을 설명 한다.
우 리 는 이 를 통 해 자바 아래 표 시 된 방문 작업 에서 효과 적 인 범 위 를 초과 해 서 는 안 된다 는 결론 을 얻 었 다.즉,[0,length-1].효과 적 인 범 위 를 초과 하면 아래 표 시 된 경계 이상 을 던 질 것 이다.
4.배열 의 옮 겨 다 니 기
옮 겨 다 니 는 것 이란 배열 의 모든 요 소 를 한 번 방문 하고 중복 되 지 않 으 며 순환 문 구 를 조합 해 야 한 다 는 것 을 말 합 니 다!
우 리 는 배열 의 방문 을 배 웠 습 니 다.그러면 우 리 는 어떻게 배열 을 옮 겨 다 닙 니까?두 가지 상용 방법 중 하 나 는 for 순환 이 고 하 나 는 foreach 순환 이다.
for 순환 예시

public class TestDemo {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        for(int i = 0 ;i < arr.length;i++){
            System.out.print(arr[i]+" ");
        }
    }
}

우 리 는 배열 의 요 소 를 인쇄 한 것 을 발견 했다.
for-each 예시
foreach 기본 사용 방법:요소 형식 변수:배열 이름

public class TestDemo {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        for(int x:arr){
            System.out.print(x+" ");
        }
    }
}

집행 결과 가 일치 하 다.
그러면 우 리 는 언제 for 순환 을 사용 합 니까?언제 foreach 순환 을 사용 합 니까?
foreach 순환 은 순환 횟수 를 모 르 거나 순환 횟수 를 계산 하기 어 려 운 데 적 용 됩 니 다.
for 순환 은 순환 횟수 를 알 고 복잡 한 순환 에서 효율 이 높다.
만약 순환 에서 첨삭 검사 수정 작업 을 사용한다 면 for 순환 은 이 루어 질 수 있 습 니 다.왜냐하면 foreach 순환 은 이 조작 을 실현 할 수 없 기 때 문 입 니 다.
5.배열 을 방법의 매개 변수 로 한다.
기본 용법:
1.배열 내용 인쇄
코드 예제:

public class TestDemo {
    public static void printArray(int[] arr){
        for(int x:arr){
            System.out.print(x+" ");
        }
    }
    public static void main(String[] args) {
        int[] arr = {2,3,4,5,6};
        printArray(arr);
    }
}

2.배열 요소 의 합 을 구한다.

public class TestDemo {
    public static int sum(int []arr) {
        int sum = 0;//       0,      
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
 
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        int ret = sum(arr);
        System.out.println(ret);
    }
}

3.배열 각 요소 곱 하기 2 출력

public class TestDemo {
    public static void multiplication(int[] arr){
        for(int i = 0 ;i < arr.length;i++){
            arr[i]=arr[i]*2;
        }
    }
    public static void printArray(int[] arr){
        for(int x:arr){
            System.out.print(x+" ");
        }
    }
    public static void main(String[] args) {
        int [] arr = {1,2,3,4};
        System.out.println(" 2 :");
        printArray(arr);
        System.out.println();
        System.out.println(" 2 :");
        multiplication(arr);
        printArray(arr);
    }
}

6.배열 관련 방법 Arrays
Arrays 는 자바 배열 을 조작 하 는 도구 클래스 입 니 다.
만약 배열 에 대해 무슨 일 을 하려 면 그것 을 통 해 할 수 있다.물론,어떤 일 들 은 그것 이 할 수 없 지만,그것 이 할 수 있다 면 우 리 는 그것 을 호출 하면 된다.
1.배열 변환 문자열:Arrays.toString()을 사용 합 니 다.

import java.util.Arrays;
 
public class TestDemo {
    public static void main(String[] args) {
        int[] arr= {1,2,3,4,5,6};
        String arr1 = Arrays.toString(arr);
        System.out.println(arr1);
    }
}


이 방법 은 문자열 로 인쇄 되 어 있 습 니 다.인쇄 할 배열 을 toString 에 넣 으 면 현재 배열 을 문자열 로 변환 하여 출력 할 수 있 습 니 다.
2.배열 복사
어떻게 배열 을 복사 합 니까?가장 직관 적 인 방법 은 현재 배열 의 크기 와 같 고 유형 이 같은 배열 을 만 들 고 하나의 대 가 를 순환 하 는 것 이다.하지만 자바 에는 직접 복사 할 수 있 는 방법 이 있다.
Arrays.copy Of(배열 이름,배열 의 길이)사용 하기;

import java.util.Arrays;
 
public class TestDemo {
    public static void main(String[] args) {
        int[] arr1 ={1,2,3,4,5,6};
        int[] arr2 = Arrays.copyOf(arr1,arr1.length);
        System.out.println("        :"+Arrays.toString(arr2));
    }
}

범위 복사 사용 Arrays.copy OfRange(배열 이름,처음부터 아래 표 시 를 끝 낼 때 까지)

import java.util.Arrays;
 
public class TestDemo {
    public static void main(String[] args) {
        int[] arr1 = {1,2,3,4,5,6};
        int[] arr2 = Arrays.copyOfRange(arr1,1,3);
        System.out.println("          :"+Arrays.toString(arr2));
    }
}

메모:copy OfRange 함수 에서 배열 요 소 는 여전히 아래 표 시 된 0 에서 시작 되 고 마지막 매개 변 수 는 찾 을 수 없습니다.즉,[1,3)왼쪽 닫 고 오른쪽 열 린 요 소 를 찾 는 것 입 니 다.
3.배열 정렬
C++를 배 웠 다 면 sort 함수 에 익숙 할 것 입 니 다.C+에서 sort 함수 사용 코드 예 시 는 다음 과 같 습 니 다.

#include <iostream>
#include <algorithm>
 
using namespace std;
 
const int N = 100;
 
int main()
{
	int arr[N];
	int n = 0;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> arr[i];
	}
	sort(arr,arr+n);
	for (int i = 0; i < n; i++)
	{
		cout << arr[i] << ' ';
	}
	return 0;
}


자바 에 도 이러한 함수 가 존재 합 니 다:Arrays.sort

import java.util.Arrays;
 
public class TestDemo {
    public static void main(String[] args) {
        int[] arr = {5,4,3,2,1};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

sort 함 수 는 모두 오름차 순 으로 배열 되 어 있 음 을 볼 수 있 습 니 다.
4.배열 찾기
①.순서 찾기:

public class TestDemo {
    public static int find(int[] arr,int x){
        for(int i = 0;i<arr.length;i++){
            if(arr[i]==x) return i;
        }
        return -1;//      
    }
    public static void main(String[] args) {
        int [] arr = {1,2,3,4,5};
        System.out.println(find(arr,10));
    }
}

②.2 점 찾기
수 동 구현:

public class TestDemo {
    public static int binarySearch(int [] arr,int x){
        int left = 0;
        int right = arr.length-1;
        while(left<=right){
            int mid = left+right>>1;
            if(x<arr[mid]){
                //     
                right=mid-1;
            }
            else if(x>arr[mid]){
                //     
                left = mid + 1;
            }
            else {
                //      
                return mid;
            }
        }
        return -1;//    ,     ;
    }
    public static void main(String[] args) {
        int [] arr = {1,2,3,4,5};
        System.out.println(binarySearch(arr,4));
    }
}

그러나 자바 의 이 방법 과 봉 인 된 것 은 Arrays.binary Search(배열 이름,찾 을 요소)를 사용 할 수 있 습 니 다.실현 하 다

import java.util.Arrays;
 
public class TestDemo {
    public static void main(String[] args) {
        int [] arr = {1,2,3,4,5};
        System.out.println(Arrays.binarySearch(arr,4));
    }
}

이상 은 자바 의 배열 설명 입 니 다.시청 해 주 셔 서 감사합니다.
자바 기본 배열 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 자바 배열 에 대한 자세 한 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기