다크호스 프로그래머 자바 과정 노트 005 배열
이전 절 보기: 자바 과정 노트 004 방법 및 방법 재 업로드
다음 절 보기: 자바 과정 노트 006 가지 와 대상, 패키지, 구조 방법
제1장 수조 개념
1.1 배열 의 정의 형식 1 - 동적 초기 화
배열: 하나의 용기 로 여러 개의 데이터 값 을 동시에 저장 할 수 있 습 니 다.
배열 의 특징:
데이터 형식 [] 배열 이름 = new 데이터 형식 [배열 길이];해석 의미: 왼쪽 데이터 형식: 즉
, 모두 통 일 된 어떤 유형 입 니까?왼쪽 의 중 괄호: 나 를 대표 하 는
왼쪽 배열 의 이름: 배열 에 오른쪽 에 있 는 new 를 가 져 다 줍 니 다.
오른쪽 에 있 는 데이터 형식 을 만 드 는 것 을 대표 합 니 다.
와 일치 해 야 합 니 다. 즉, 배열 에서 가능 한 지
는 int 숫자 입 니 다.package cn.itcast.day05;
/*
: , 。
:
1.
2. ,
3.
: , 。
:
1. ( )
2. ( )
:
[] = new [ ];
:
: , 。
:
:
new:
:
: , , int
*/
public class Demo01Array {
public static void main(String[] args) {
/* int score1 = 100;
int score2 = 98;
int score3 = 99;
System.out.println(score3); // 99
score3 = 100;
System.out.println(score3); // 100*/
// , 300 int
// : [] = new [ ];
int[] arrayA = new int[300];
// , 10 double
double[] arrayB = new double[10];
// , 5
String[] arrayC = new String[5];
}
}
1.2 배열 의 정의 형식 2 - 정적 초기 화
: 배열 을 만 들 때 배열 의 데이터 요소 갯 수 ( )
를 직접 지정 합 니 다. 배열 을 만 들 때 데이터 갯 수 를 직접 지정 하지 않 고 구체 적 인 데이터 내용 을 직접 지정 합 니 다.정적 초기 화 기본 형식:
데이터 형식 [] 배열 이름 층 = new 데이터 형식 [] {요소 1, 요소 2,...};
주의사항:
정적 초기 화 는 길 이 를 직접 알려 주지 않 았 지만 괄호 안의 요소 의 구체 적 인 내용 에 따라 배열 의 길 이 를 계산 할 수 있 습 니 다.
package cn.itcast.day05;
/*
( ): ,
( ): , , 。
:
[] = new []{ 1, 2,...};
:
, , 。
*/
public class Demo02Array {
public static void main(String[] args) {
// , int , 5,15,25
int[] arrayA = new int [] {
5, 15, 25};
// , :"Hello"、"World"、"Java"
String[] arrayB = new String[]{
"Hello", "World", "Java"};
}
}
1.3 배열 의 정의 형식 3 - 생략 된 정적 초기 화
정적 으로 배열 을 초기 화 할 때 형식 은 다시 생략 할 수 있 습 니 다.표준 형식:
[] = new [] {
1, 2, ...};
형식 생략:
데이터 형식 [] 데이터 이름 = {요소 1, 요소 2,...}
주의사항:
사용 제안:
( )
동적 으로 초기 화 합 니 다.
정적 초기 화 를 사용 합 니 다.package cn.itcast.day05;
/*
, 。
:
[] = new [] { 1, 2, ...};
:
[] = { 1, 2, ...}
:
1. , 。
2. 。
3. 。
4. , 。
:
, 。
, 。
*/
public class Demo03Array {
public static void main(String[] args) {
//
int[] arrayA = {
10, 20, 30};
// ,
int[] arrayB;
arrayB = new int[] {
10,20,23};
//
int[] arrayC;
arrayC = new int[5];
// , 。
int[] arrayD;
// arrayD = {10,20,40};
}
}
1.4 배열 요소 에 접근 하여 가 져 오기
package cn.itcast.day05;
/*
, , 。
: [ ]。
: int , 。
【 】 0 , “ -1” 。
*/
public class Demo04ArrayUse {
public static void main(String[] args) {
//
int[] array = {
10, 20, 30};
System.out.println(array); // [I@50cbc42f
//
System.out.println(array[0]); // 10
System.out.println(array[1]); // 20
System.out.println(array[2]); // 30
// ,
int number = array[1];
System.out.println(number); // 20
}
}
1.5 액세스 배열 요소 구분
정수 형식 이 라면 기본 값 은 0 입 니 다.부동 소수점 형식 이 라면 기본 값 은 0. 0 입 니 다.문자 형식 이 라면 기본 값 은 '\ u0000' 입 니 다. 불 형식 이 라면 기본 값 은 false 입 니 다. 참조 형식 이 라면 기본 값 은 null 입 니 다.
package cn.itcast.day05;
/*
, 。 :
, 0;
, 0.0;
, '\u0000'
, false
, null
:
, 。
*/
public class Demo05ArrayUse {
public static void main(String[] args) {
//
int[] array = new int[3];
System.out.println(array); //
System.out.println(array[0]); // 0
System.out.println(array[1]); // 0
System.out.println(array[2]); // 0
System.out.println("=============");
// 123 array 1
array[1] = 123;
System.out.println(array[1]); // 123
System.out.println(array[2]); // 0
System.out.println(array[0]); // 0
}
}
제2 장 배열 의 메모리 구분
2.1 자바 의 메모리 구분
자바 의 메모 리 는 5 개 부분 으로 나 뉜 다.
package cn.itcast.day05.demo02;
/*
*/
public class Demo01ArrayOne {
public static void main(String[] args) {
int[] array = new int[3]; //
System.out.println(array); //
System.out.println(array[1]); // 0
System.out.println(array[2]); // 0
System.out.println(array[3]); // 0
System.out.println("===============");
//
array[1] = 10;
array[2] = 20;
System.out.println(array); //
System.out.println(array[0]); // 0
System.out.println(array[1]); // 10
System.out.println(array[2]); // 20
}
}
// :
// --main (String args[])
// ------int[] array
// ----System.out.println(array); //
// ----array[1] = 10;
// ----array[2] = 20;
// :
// --new int[3]
// ----[0][1][2]
// :public static void main(String[] args)
2.3 두 배열 의 구조 구분
각각 new, 서로 상관 없어 요.만약 array B = array A 가 사실 주소 가 같다 면, 수조 내용 도 마찬가지다.이것 도 인용 이 라 고 한다.
package cn.itcast.day05.demo02;
public class Demo02ArrayTwo {
public static void main(String[] args) {
int[] arrayA = new int[3]; //
System.out.println(arrayA); //
System.out.println(arrayA[1]); // 0
System.out.println(arrayA[2]); // 0
System.out.println(arrayA[0]); // 0
System.out.println("===============");
arrayA[1] = 10;
arrayA[2] = 20;
System.out.println(arrayA); //
System.out.println(arrayA[0]); // 0
System.out.println(arrayA[1]); // 10
System.out.println(arrayA[2]); // 20
int[] arrayB = arrayA; //
System.out.println(arrayB); //
System.out.println(arrayB[1]); // 0
System.out.println(arrayB[2]); // 0
System.out.println(arrayB[0]); // 0
System.out.println("===============");
arrayB[1] = 100;
arrayB[2] = 200;
System.out.println(arrayB); //
System.out.println(arrayB[0]); // 0
System.out.println(arrayA[1]); // 100
System.out.println(arrayA[2]); // 200
}
}
제3 장 이상 및 기타
3.1 배열 이 월경 이상 을 일으킨다.
배열 의 색인 번 호 는 0 에서 시작 하여 배열 의 길이 - 1 까지 입 니 다.
배열 요소 에 접근 할 때 색인 번호 가 존재 하지 않 으 면 배열
이 발생 합 니 다.배열 크로스 오 버 이상 ArrayIndexOutOfBounds 예외
원인:
해결 을 잘못 썼 습 니 다. 수정 이 존재 하 는
package cn.itcast.day05.demo03;
/*
0 , -1
, ,
ArrayIndexOutOfBoundsException
:
:
*/
public class Demo01ArrayIndex {
public static void main(String[] args) {
int[] array = {
15, 25, 35};
System.out.println(array[0]); // 15
System.out.println(array[1]); // 25
System.out.println(array[2]); // 35
//
// 3 ,
// System.out.println(array[3]);
}
}
3.2 빈 포인터 이상
모든 인용 형식 은 null 값 을 부여 할 수 있 지만 아무것도 없다 는 뜻 입 니 다.배열 은 new 초기 화 를 해 야 그 중의 요 소 를 사용 할 수 있 습 니 다.하나만 할당
하고 new 생 성 을 하지 않 으 면 빈 포인터 이상 null
이 발생 합 니 다.package cn.itcast.day05.demo03;
/*
null , 。
new 。
null, new ,
:
NullPointerException
: new
: new
*/
public class Demo02ArrayNull {
public static void main(String[] args) {
//
int[] array = null;
array = new int[3];
System.out.println(array[0]); // Variable 'array' might not have been initialized
}
}
3.3 배열 의 길 이 를 가 져 옵 니 다.
배열 의 길이, 형식 을 가 져 오 는 방법: 배열 이름. length 는 int 숫자, 표 배열 의 길 이 를 가 져 옵 니 다.
배열 이 생 성 되면 프로그램 이 실행 되 는 동안 길 이 를 바 꿀 수 없습니다.
package cn.itcast.day05.demo03;
/*
、 :
.length
int , 。
, , 。
*/
public class Demo03ArrayLength {
public static void main(String[] args) {
int[] arrayA = new int[3];
int[] arrayB = {
10, 20, 30, 3, 4, 5, 6, 7, 8, 9};
int len = arrayB.length;
System.out.println("ArrayB :" + len);
System.out.println("=================");
int[] arrayC = new int[3];
System.out.println(arrayC.length); // 3
arrayC = new int[5]; // , arrayC
System.out.println(arrayC.length); // 5
}
}
3.4 배열 의 반복 출력
package cn.itcast.day05.demo03;
/*
: 、 。 。
*/
public class Demo04Array {
public static void main(String[] args) {
int[] array = {
15, 20, 30, 40, 50, 4};
//
System.out.println(array[0]); // 15
System.out.println(array[1]); // 20
System.out.println(array[2]); // 30
System.out.println(array[3]); // 40
System.out.println(array[4]); // 50
System.out.println(array[5]); // 4
System.out.println("==============");
// ,
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
3.5 배열 의 최대 값 구하 기
package cn.itcast.day05.demo03;
public class Demo04ArrayMax {
public static void main(String[] args) {
int[] array = {
10, 20, 30, 20, 1000};
int max = array[0]; //
for (int i = 1; i < array.length; i++) {
// , max ,
if(array[i] > max){
max = array[i];
}
}
// 。 max 。
System.out.println(" :" + max);
int min = array[0];
for (int i = 1; i < array.length; i++) {
// min ,
if(array[i] < min){
min = array[i];
}
}
System.out.println(" :" + min);
}
}
3.6 배열 반전
배열 요소 의 반전: 원래 의 모습: [1, 2, 3, 4] 이후 의 모습: [4, 3, 2, 1] 새 배열 을 사용 할 수 없 도록 요구 합 니 다.원래 의 유일한 배열 로 원소 반전 을 진행 합 니 다.
package cn.itcast.day05.demo03;
/*
:
:[1, 2, 3, 4]
:[4, 3, 2, 1]
。 。
1. , 。
2. :
int i = 0;
:
int min = 0;
int max = array.length -1;
3. ?
int a = 10;
int b = 10;
:
int temp = a;
a = b;
b = temp;
4. ?
(1)min == max
(2)min > max
min < max
*/
public class Demo07Reverse {
public static void main(String[] args) {
int[] array = {
10, 20, 30, 40, 50};
//
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
System.out.println("=================");
//
/*
:int min = 0, max = array.length - 1;
:min < max
:min++,max--
: array[]
*/
for(int min = 0, max = array.length-1; min < max; min++,max--){
int temp = array[max];
array[max] = array[min];
array[min] = temp;
}
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
}
}
3.7 배열 을 방법 매개 변수 로전달 주소
배열 은 방법 으로 할 수 있다
NullPointerException
.방법 을 호출 할 때 방법의 작은 괄호 에 인삼 을 전달 하고 전달 하 는 것 은 사실
이다.package cn.itcast.day05.demo04;
/*
。
, , , 。
*/
public class Damo01ArrayParam {
public static void main(String[] args) {
int[] array = {
10, 20, 30, 40, 50};
System.out.println(array);
printArray(array); // array
System.out.println("==================aaaa========================");
printArray(array);
System.out.println("==================bbbb========================");
printArray(array);
}
/*
:
: , , ,void
:printArray
: ,
*/
public static void printArray(int[] array){
for (int i = 0; i < array.length; i++) {
System.out.println("printArray " + array);
System.out.println(array[i]);
}
}
}
배열 을 방법 으로 하 는 반환 값반환 주소
한 가지 방법 이 있 을 수 있다
.그러나 0、1、
만 있 을 수 있 고 여러 개의 반환 값 이 있 을 수 없다.만약 한 방법 중 에 여러 개의 결과 데이터 가 발생 하여 되 돌아 오 기 를 원한 다 면 어떻게 합 니까?해결 방안;반환 값 형식 으로 배열 을 사용 하면 됩 니 다.0 1
모두 방법의 매개 변수 유형 또는 반환 값 유형 으로 할 수 있 습 니 다.배열 을 방법 으로 하 는
전달 하 는 것 은 사실
이다.배열 을 방법 으로 하 는
, 전달 하 는 것 도
이다.package cn.itcast.day05.demo04;
/*
0、1 ; 0 1 , 。
, ?
; 。
, 。
, 。
, 。
*/
public class Demo02ArrayReturn {
public static void main(String[] args) {
int[] result = calculate(10,20,30);
System.out.println("main :" + result);
System.out.println(" :" + result[0]);
System.out.println(" :" + result[1]);
}
public static int[] calculate(int a, int b, int c){
int sum = a + b + c;
int vrg = sum / 3;
int array[] = new int[2];
array[0] = sum; //
array[1] = vrg; //
// int[] array = {sum, vrg};
System.out.println("calculate :" + array);
return array;
}
}
이전 절 보기: 자바 과정 노트 004 방법 과 방법 다시 불 러 오기 다음 절 보기: 자바 과정 노트 006 가지 와 대상, 패키지, 구조 방법
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
스캐닝 라인 법 최대 서브 매트릭스 구하 기② left [i, j] 로 점 (i, j) 에 대응 하 는 현 선의 왼쪽 경 계 를 표시 합 니 다. (i, j) 가 장애 일 때 left [i, j] = 왼쪽 경계;(i, j) 가 빈 칸 일 때, left [i,...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.