요즘 sql이니 뭐니 배우느랴 블로그에 올릴시간이 부족해서 못올리고 있었다
배열에대해 빠르게 설명하자면
기본적으로
데이터타입[] 배열명 = new 데이터타입[배열의개수] ; 또는
데이터타입[] 배열명 = {숫자,숫자,숫자}
String[] 배열명 ={"문자","문자","문자"} 등으로 선언과 함께 초기화를 할 수 있다
이때 첫번째 두번째 세번째 .....n번째 등에 해당하는 데이터를 불러오고 싶을경우
배열명[N-1]을 사용하면된다
N-1인 이유는 배열의 숫자는 0이 첫번째 부터 시작하기때문
배열의 길이를 구하는 문장은 배열명.length
ex) int arr = {1,2,3};
System.out.println(arr[0]); ----> 출력결과 : 1
System.out.println(arr[1]); ----> 출력결과 : 2
String sarr = {"ㄱ","ㄴ","ㄷ"}
System.out.println(sarr[0]); ----> 출력결과 : ㄱ
System.out.println(sarr[1]); ----> 출력결과 : ㄴ
배열의 전체 출력은 for문을 사용하면 쉽게 출력할수있다
ex)
int arr = {1,2,3};
for(int i=0; i<arr.length;i++){
System.out.println(arr[0]);
}
public class Example {
public static void main(String[] args) {
//데이터타입 //스택은 거꾸로쌓임 (이러한 구조를 (lifo = last in first out)
//기본형(원시형 = 프리미티브타입) : boolean byte short int long char float double
//데이터가 한가지만 저장되기때문에 원시형이라함
//직접접근(스택에 저장됨) , 메모리접근을 한번만함
//참조형(리퍼런스 타입 = 열거형, 복수형) : 배열형, 열거형, 클래스(DAO=VO), 인터페이스(추상체)
//여러가지 데이터 저장이 가능(스택에 저장되는게 아님)
//스택에는 heap의 주소만 저장됨
//데이터가 있는곳의 주소를 불러와서 적용하므로 참조타입이라 함(간접접근)
//heap와 같은구조를 fifo (first in first out) -이러한 스택구조를 queue구조 라고함
//참조형이 데이터를 효율적으로 돌릴수있다.
//배열형 int[] 배열이름 = {};
int[] arr = {1, 80, 50, 70}; //1줄짜리배열 = 1차원배열
//arr[0]==1,arr[1]==80,arr[2]==50,arr[3]==70 (arr의 0번째 배열은1 1번째배열은 80 여기서 1,80,50,70 은 원소라고한다.
//[0] , [1],[2],[3]은 첨자 혹은 인덱스라고 한다.
for(int i=0; i<arr.length ; i++){
System.out.println(arr[i]); //배열이름.length == 배열의 길이
}
int[][] arr2 = {{1,2,3,4},{7,8,9,0}}; //=2차원배열 2줄 4칸짜리 (이런식으로하면 3차원배열도 가능)
//이런경우 arr2[0][0] == 1 , arr[0][1] == 2 이런식으로 된다. 앞의 []는 행 인덱스 , 뒤에 []는 칸 인덱스
int[][] arr3 = {{1,90,80,60},{2,70,86,95}};
System.out.println("번호\t국어\t수학\t영어");
for(int x=0;x<2;x++){
for(int y=0;y<4;y++){
System.out.print(arr3[x][y]+"\t");
}System.out.println("");
}
}
}
public class Example {
public static void main(String[] args) {
//배열 선언
int[] i_arr; //기본타입[] 배열명; , 기본타입 배열명[] (몇개의 원소인지 부정확하므로 주소배정이 안됨)
int i_arr2[]; //개수를 지정해놓지않은 선언 - 선언만 해놔서 아직메모리할당을 못함(=heap의 주소를 배정못함)
float[] f_arr;
float f_att2[];
//기본타입[] 배열명 = new 기본타입[개수]
//기본타입 배열명[] = new 기본타입[개수]
int i;
int[] io_arr = new int[8]; //개수를 지정한 선언 - 개수를 지정하면 자동초기화가 됨
String[] s_arr = new String[5]; // 즉 원소의 개수가 지정되면 주소배정이됨
//System.out.println(i); 프리미티브 타입은 초기화를 하지않으면 출력불가
System.out.println("s_arr : "+s_arr);
System.out.println("io_arr : "+io_arr); //배열은 메모리에 할당이 되면(개수지정이되면) 그 주소가 나온다
int[] arr = {1, 80, 50, 70};
int arr2[] = {1, 80, 50, 70};
for(int x=0;x<arr.length;x++){
System.out.print(arr[x]+"\t");
}System.out.println();
//자바1.6이상은
//for(int data : arr2){ } 라고치면 arr2에 있는 개수만큼 데이터를 메모한다
for(int data : arr2){ //이렇게 하는것은 객체도가능 //추가 향상된 for문
System.out.print(data+"\t");
}
//즉 for(int x=0;x<arr.length;x++) = for(int x :arr)
}
}