본문 바로가기
IT/자바

배열 정리 첫번째

by 독서실총무J 2017. 5. 15.
반응형

5월 15일 세종대왕 탄신일이다

벌써 620년이나 전의 이야기이다

한글을 만드신 그분에게 다시 한번 

감사함을 느끼며 오늘 복습을 해보자


배열이야 다른 언어에서도 워낙

중요하게 나오니 자바가 

첫 언어가 아니라면 거의다 

알고 있을 거라 생각한다


그러므로 빠르게 빠르게 

하고 넘어가도록 하자

기본적인 설명이 필요한 

사람은 잠시 나가서 구글에게

도움을 요청하도록 하자


배열은 배운 코드가 

워낙 많아서 이틀에

걸쳐서 적을 생각이다 


첫번째 예제부터 보자


class ArrEx2 {

	public static void plus(int n1, int n2) {
		System.out.println(n1 + n2);
	}
	public static void plus(int n1, int n2, int n3) {
		System.out.println(n1 + n2 + n3);
	}
	
	public static void plus(int[] nums) {
		int total = 0;
		for(int n : nums) {
			total += n;
		}
		System.out.println(total);
	}
	public static void main(String[] args) {
		plus(2, 3);
		int[] arr = {1,2,3,4,5};
		plus(arr);
		plus(new int[] {2,4,6,8,10});
	}
}


ArrEx1도 있었지만 너무 쉬운 내용이라 뺐다

2부터 보기로 하자


static의 plus메소드들은 저번시간 때에

잘 정리 되었다고 보고 배열만 보자


main문을 보면 arr변수를 보도록 하자

자바에서 배열은 총 3가지로 나타낼수 있다

그 내용은 바로 다음 예제에서 설명하겠다


여기서는 두가지가 나오는데 

형태를 눈으로 쭉 봐두도록 하자 


직접 쳐보고 결과를 예상해보자


class ArrEx3 { public static void setZero(int[] arr) { for(int idx=0; idx<arr.length; idx++) { arr[idx] = 0; } } public static void main(String[] args) { //int[] temp = {1,2,3,4,5}; // int[] temp = new int[5]; int[] temp = new int[]{1,2,3,4,5}; setZero(temp); for(int n : temp) { System.out.println(n); } } }


main문에 주석부분을 잘보자 

총 3가지 배열표현법이 모두 나와있다


 int[] arr = new int[4];

 int[] arr = {1,2,3,4};

 int[] arr = new int[]{1,2,3,4};


따로 설명할 거리도 없는것 같다

그냥 눈으로 익히고 외우자 

3가지 모두 다 잘 쓰인다고 했으니

무조건 필수적으로 알아두자 


돌머리인 나도 외웠으니

당신이 하는데에 전혀 

문제 될것이 없을거라 본다


class ArrEx4 { public static int[] toArray(int n1, int n2, int n3) { int[] temp = new int[3]; // int[] temp = {n1, n2, n3}; temp[0] = n1; temp[1] = n2; temp[2] = n3; return temp; } public static void main(String[] args) { int[] arr = toArray(2,5,6); for(int n : arr) { System.out.println(n); } } }


단순한 배열의 연속이다

c언어 처럼 자바에서도 

인덱스에 숫자를 넣어서 값을 지정할수 있다


물론 인자값은 0부터 n-1까지이다


위에 예제에서는 toArray라는 메소드의

return값을 arr에 담아주고 있다


int같은 기본형 자료형이라면 이해하기 

참 쉽지만 다음부터 나올 참조형들은

헷갈리지 말고 잘 알아두어야 할것이다


class Member { private String id; private String name; public Member(String id, String name) { this.id = id; this.name = name; } public void setName(String name) { this.name = name; } @Override public String toString() { return id + " : " + name; } } class ArrEx5 { public static void main(String[] args) { Member[] members = { new Member("good", "james"), new Member("bad", "john"), new Member("nice", "smith") }; members[1].setName("jane"); for(Member temp : members) { System.out.println(temp); } } }


Member 객체들을 members라는 배열에 담고 있다

총 3개의 Member객체 들이 순서대로 들어가게 된다


배열 안에 들어간 객체들의 정보가 필요하다면

그냥 꺼내 쓰면 된다 


만약 내가 첫번째 인자의 id를 참조해야 할경우는

getter를 만들어서 값을 읽어 오기만 하면된다


기본형이 들어가던게 객체가 들어간다고 생각하면 된다

자바 수업을 들으면서 개인적으로는 배열을 잘 사용하지 않았다

아무래도 길이가 고정되어있는게 가장 큰 이유 였다


class ArrEx6 { public static void main(String[] args) { Object[] arr = new Object[3]; int[] intArr = {1,2,3}; int[][] int2Arr = { {1,2}, {3,4}, {5,6} }; arr[0] = "abc"; arr[1] = intArr; arr[2] = int2Arr; Object temp = arr[2]; int[][] tempArr = (int[][]) temp; for(int[] nums : tempArr) { for(int n : nums) { System.out.println(n); } } } }


간단한 이야기이다 

배열안에는 객체도 문자도,숫자도 뭐라도 넣을수 있다

복잡해 보이지만 전혀 그럴것 없는 코드이다


그냥 들어간다고 생각하면 맘이 편하다

내가 귀찮아서 그런게 아니라 

그냥 쳐보고 또 쳐보면 이해할수 밖에 

없을거라 생각한다


아, 그리고 Object는 자바 자료형중 

가장 상위에 있는 것이다


오늘은 배열에 대해서 간략하게 알아보고

예제 소스를 훑어 보았다

내일은 나머지 남은 반을

함께 복습해보자 

반응형

댓글