-
[Java_Basic]배열(윤성우의 열혈 Java 프로그래밍)Java/Basic 2021. 1. 2. 11:57
배열
자료형이 같은 둘 이상의 값
1차원 배열 생성 방법
int[] ref = new int[5];
int[] ref -> int형 1차원 배열 인스턴스를 참조할 수 있는 '참조변수의 선언'
new int[5] -> int형 값 5개를 저장할 수 있는 '배열 인스턴스의 생성'
class ArrayIsInstance{ public static void main(String[] args){ //길이가 5인 int형 1차원 배열의 생성 int[] ar1 = new int[5]; //길이가 7인 double형 1차원 배열의 생성 double[] ar2 = new double[7]; //배열의 참조변수와 인스턴스 생성 분리 float[] ar3; ar3 = new float[9]; //배열의 인스턴스 변수 접근 System.out.println("배열 ar1 길이 : " + ar1.length); System.out.println("배열 ar2 길이 : " + ar2.length); System.out.println("배열 ar3 길이 : " + ar3.length); } }
1차원 배열은 배열의 길이와 상관없이 참조가 가능하다
int[] ref;
ref = new int[5]; 의 형태이기 때문에
public static void main(String[] args){ int[] ar = new int[50]; System.out.println("length : " + ar.length); //length : 50 ar = new int[100]; System.out.println("length : " + ar.length); //length : 100 }
인스턴스를 저장할 수 있는 배열의 생성도 가능하다.
class Box{ private String conts; Box(String cont){ this.conts = cont; } public String toString(){ return conts; } } class ArrayIsInstance2{ public static void main(String[] args){ Box[] ar = new Box[5]; //길이가 5인 Box형 1차원 배열 생성 System.out.println("length : " + ar.length); //length: 5 } }
배열의 저장
int[] ar = new int[3];
ar[0] = 7;
class Box{ private String conts; Box(String cont){ this.conts = cont; } public String toString(){ return conts; } } class BoxArray{ public static void main(String[] args){ Box[] ar = new Box[3]; //배열에 인스턴스 저장 ar[0] = new Box("First"); ar[1] = new Box("Second"); ar[2] = new Box("Third"); //저장된 인스턴스의 참조 System.out.println(ar[0]); System.out.println(ar[1]); System.out.println(ar[2]); } }
class StringArray{ public static void main(String[] args){ String[] ar = new String[7]; ar[0] = new String("Java"); ar[1] = new String("System"); ar[2] = new String("Compiler"); ar[3] = new String("Park"); ar[4] = new String("Tree"); ar[5] = new String("Dinner"); ar[6] = new String("Brunch Cafe"); int cnum = 0; for(int i = 0; i < ar.length; i++) cnum += ar[i].length(); System.out.println("총 문자의 수 : " + cnum); } }
배열 생성
int[] arr = new int[3]; // int arr[] =new int[3] 도 가능하지만 앞의것을 더 선호한다.
배열 생성 및 초기화
int[] arr = new int[] {1,2,3};
int[] arr = {1,2,3};
class ArrayTest{ public static void main(String[] args){ int[] ar = {1,2,3,4,5,6,7}; int sum = sumofAry(ar); System.out.println(sum); } static int sumofAry(int[] ar){ int sum = 0; for(int i = 0; i<ar.length; i++) sum += ar[i]; return sum; } }
배열의 초기화와 배열의 복사
int[] ar = new int[10]; //배열의 모든 요소 0으로 초기화
String[] ar = new String[10]; //배열의 모든 요소 null로 초기화
public static void fill(int [] a, int val)
-> val 값으로 배열 초기화
public static void fill(int[] a, int fromIndex, int toIndex, int val)
->인덱스 from ~ to (-1) 까지의 범위를 val값으로 배열 초기화
import java.util.Arrays; class ArrayUtils{ public static void main(String[] args){ int[] ar1 = new int[10]; int[] ar2 = new int[10]; Arrays.fill(ar1,7); //배열 ar1을 7로 초기화 System.arraycopy(ar1,0,ar2,3,4); //ar1 을ar2로 부분 복사 for(int i=0; i<ar1.length;i++) System.out.print(ar1[i] + " "); System.out.println(); //단순 줄바꿈 for(int i = 0; i<ar2.length;i++) System.out.print(ar2[i] + " " ); } }
class Simple{ public static void main(String[] args){ for(int i = 0; i < args.length; i++) System.out.println(args[i]); } }
enhanced for문(for-each문)
배열이 등장하면 배열의 순차적 접근을 위해 for문이 나올 수 밖에 없다
이를 줄여서 표현 방법을 제공해야겠다 해서 만들어진것이다.
for(int e : ar){
System.out.println(e);
}
for(요소:배열){
반복할 문장들
}
class EnhanceFor{ public static void main(String[] args){ int[] ar = {1,2,3,4,5}; //배열 요소 전체 출력 for(int e : ar){ System.out.print(e + " " ); } System.out.println(); int sum = 0; //배열 요소의 전체 합 출력 for(int e : ar){ sum += e; } System.out.println("sum : " + sum); } }
2차원 배열 생성과 접근
길이가 4개인 배열을 3개 묶어서 사용하겠다.
class TwoDimenArray{ public static void main(String[] args){ int[][] arr = new int[3][4]; int num = 1; //배열에 값을 저장 for(int i = 0; i < 3; i++){ for(int j = 0; j<4;j++){ arr[i][j] = num; num++; } } //배열에 저장된 값을 출력 for(int i = 0; i<3; i++){ for(int j = 0; j<4;j++){ System.out.print(arr[i][j] + "\t"); } System.out.println(); } } }
2차원 배열의 초기화
int[][] arr = new int[][]{
{11,22,33},
{44,55,66},
{77,88,99}
};
class PartiallyFilledArray{ public static void main(String[] args){ int[][] arr = { {11}, {22,33}, {44,55,66} }; //배열의 구조대로 내용 출력 for(int i = 0; i < arr.length; i++){ for(int j = 0;j<arr[i].length;j++){ System.out.print(arr[i][j] + "\t"); } System.out.println(); } } }
'Java > Basic' 카테고리의 다른 글
[Java_Basic]클래스의 상속 2 : 오버라이딩(윤성우의 열혈 Java 프로그래밍) (0) 2021.01.02 [Java_Basic]클래스의 상속1 : 상속의 기본(윤성우의 열혈 Java 프로그래밍) (0) 2021.01.02 [Java_Basic]콘솔 입력과 출력(윤성우의 열혈 Java 프로그래밍) (0) 2021.01.02 [Java_Basic]메소드의 오버로딩과 String 클래스(윤성우의 열혈 Java 프로그래밍) (0) 2021.01.02 [Java_Basic]클래스 변수와 클래스 메소드(윤성우의 열혈 Java 프로그래밍) (0) 2021.01.02