반응형
*배열
-
일괄처리시 사용
*1차원 배열
-
행하나에 열로구분된 배열
-
고정길이형
-
동일데이터형으로 나열
-
작성법)
선언 )
Strack에만 만들어진다.
모든데이터형을 줄수 있다.
데이터형[] 배열명 =null;
방의 크기는 선언만 할때에는 주지 못한다. (Error)
int[] arr=null;
생성)
heap에 값을 올려둔다.(참조형 데이터형이므로
배열명=new 데이터형[방의 갯수];
new 가 heap에 만들어주게끔 주소를 넘겨줌.
방의갯수는 저얼때 바뀌지 않고, 그러므로 고정=>고정길이형
arr =new int[3];
자바는 무조건 시작하는 주소 하나로 시작하게 된다(c는 방마다 주소를 얻을수 있어 달라)
생성이 되면 모든방이 초기화 됨
값을 모르거나 나중에 생성되서 들어올거야 할때 참조형형식으로(선언과 생성을 이렇게 한게 참조형 형식)
<후에 값을 하나하나 넣어야 할수도 있다..
<27일자 구조참고 배열명과 주소는 스택에/배열의 구조와 값은 heap에~!~!
기본형형식의 사용(new 사용x) )
데이터형[] 배열명={값,,,};
배열에 들어가는 모든 값을 알고 있을때
값앞에 new 데이터형[] 이게 생략되어있음.
int[] arr ={1,2,3}
배열의 값 할당)
기본형이든 참조형이든 같게 사용
배열명[index]=값;
index를 잘못쓰면 Error
배열의 값 사용)
배열명[index]
이건 개별처리인것.
모든 방의 값을 순환 출력)
반복문을 사용하는데, 몇번이나 도는지 값을 알기때문에 for
for(int i=0; i<arr.length; i++){
System.out.println(arr[i]);
}
<<<어제의 내용 정리>>>
<정렬>
*Split
-
문자열중 특정 문자열로 구분하여 배열로 생성하는 method
-
구분된 문자열을 버린다.
-
csv데이터를 구분할때 많이 사용.(CSV File insert: Comma Separated Value : 컴마로 구문되어 있는 값으로, 컴마가 아니더라도 특정문자로 구분되어 있더라도 csv라고 이야기함)
-
다 자르는데 '.'은 자를수 없다.
-
String d="이재찬, 정택성, 공선의.김건우, 김정운";
-
d.split(",");
-
d.split(".");은 통째로 나옴..
*이차원 배열
-
행과 열로 구성된 배열. <db의 테이블 정도
-
<컬럼명이 없다.
-
<동일데이터형으로 나열,
-
행의수 : 배열명.length
-
열의수 : 배열명[행번호].length
-
모든행의 모든 열의개수는 같다. <다르면 가변배열
-
작성법)
선언)
데이터형[][] 배열명=null; <(heap의 주소가 없음) <오라클의 null:문자도 숫자도 아닌 사용할수 없는값
int[][] arr= null;
생성)
배열명 = new 데이터형[행의수][열의수];
만들어지고 초기화 됨.
arr = new int[2][3];
1+2)
데이터형[][] 배열명 = new 데이터형[행의수][열의수];
int[][] arr= new int[2][3]; <참조형 형식
값할당)
배열명[행의번호][열의번호]=값;
arr[0][0]=10;
arr[1][2]=20;
값사용)
배열명[행의번호][열의번호]
arr[0][0]
arr[0][1]
모든방의 값출력)
for(int i=0;i<배열명.length;i++){
for(int j=0;j<배열명[i].length;j++){
배열명[i][j]
}
}
또는
-향상된 for 사용
:이차원 배열의 한 행은 일차원 배열로 이루어져있다.
for( 일차원배열 :이차원배열명){//이차원배열의 한행이 앞에 담긴다.
for( 데이터형 변수명(일차원배열의 방) : 일차원배열명){
변수명(일차원배열 방의값 출력)
-기본형 형식
-
데이터형[][] : 배열명 ={{값,,,},{,,}}//{ }행구분 괄호
-
<사용되는 값들을 내가 알고 있을때 사용
-
값들 앞에 new 데이터형[][]이 생략된 것이다.
-
int[][] arr={{10,20,30},{40,50,60}}; 2행3열 <갯수를 동일하게 묶지않으면 가변배열이 된다..
-
{{10,20},{30,40},{50,60}} 3행 2열
-
<행구분 괄호를 잘써야 한다~!
-
행구분 괄호에 의해 행과 열이 생성된다.
데이터형[] 배열명=null;
데이터형 배열명[]=null;//혼란을 줄수 있어 권장하지 않는다. int i[],j; j도 배열로 보일수 있어서~
데이터형[][] 배열명=null;
데이터형 배열명[][]=null;
*가변 배열(Variable Array)
-
<2차원배열을 기반으로 행과 열로 구성이 되기는 한다.
-
행과 열로 구성된 배열로 행마다 열의 갯수가 다른 배열.(2차원 배열이 기반)
-
행의수 : 배열명.length
-
열의수 : 배열명[행의번호].length
1.선언)
데이터형[][] 배열명 = null;
int[][] arr= null;
2.생성) <열의 수를 주는 순간 2차원 배열이 된다.
열의 갯수를 설정하지 않는다.
배열명 = new 데이터형[행의수][]
arr= new int[5][];
3.행마다 열을 생성)
배열명[행의번호] = new 데이터형[열의수];
arr[0] = new int[3];
arr[1] = new int[2];
arr[2] = new int[4];
arr[3] = new int[]{1,2,3,4,5,6,7}; <new 생략 불가.
4.값 할당)
배열명[행의 번호][열의 번호] = 값;
5.값 사용)
배열명[행의번호][열의번호]
모든방의 값 출력) => 일괄처리
for로 출력하는것도 같다.
for (int i=0;i<arr.length;i++){
for(int j=0; j<arr[i].length; j++){
arr[i][j]
}
}
3번만 다르고 다 똑같다. 행마다 열이 바뀌는 데이터
ex) 버스배차...
기본형 형식 사용)
-행구분 괄호로 묶여지는 값의 갯수를 다르게 설정
-문법은 같다.
-문법) 데이터형[][] 배열명={{값,},{,,,},{,}};
int[][] arr = {{1,2},{3},{4,5,6,7},{8,9,10}};
//거의 쓸일이 없당.
반응형