배열은 1차원적이다.
int[ ] a = new int [ ] {1,2,3,4,5,6,7};
4바이트 int형 변수가 7개 나열된다.(28바이트) 직선과도 같다.
2차원 배열은 직선을 면으로 바꾸는 것과 같다.
int[ ] ar1 = new int[][]{{1,2},{3,4}};
public class FreeTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] ar = new int[][]{{1,2},{3,4}};
for(int i =0; i <ar.length; i++) {
for(int j=0; j< ar[i].length; j++) {
System.out.println(ar[i][j]);
}
}
}
}
이차원 배열을 꺼내는 방법은 위와 같다. ar.length 상위 배열이 2개(세로) ar[i].length하위 배열이 2개(가로) 요소를 가진다. 배열의 값은 a[i][j] 값으로 출력이 가능하다.
자바의 배열은 new를 사용하여 생성하므로 중간에 배열의 크기를 늘려야 할때는 코드를 다시 쓰고 컴파일 해야 합니다. ArrayList 클래스를 사용하면 좀 더 유연하게 쓸 수 있습니다. ArrayList 경우 기본으로 배치되는 클래스가 아니기 때문에 java.util.ArrayList 로 import를 해줘야 합니다.
새로운 API를 알고 싶으면 그때마다 javadoc을 찾아보는 것을 추천합니다. API가 워낙 많아서 다 외우는 사람은 없을 겁니다.
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
결론적으로 편하다. ArrayList 에서 add로 추가를 할 수 있다.
import java.util.ArrayList;
public class FreeTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Employee> al1 = new ArrayList<Employee>();
al1.add(new Employee("채영훈",30));
al1.add(new Employee("감윤후",25));
al1.add(new Employee("송리나",22));
for(int i=0; i< al1.size(); i++) {
Employee ep1 = al1.get(i);
ep1.showInfo();
}
System.out.println();
System.out.println("");
}
}
class Employee{
private String name;
private int age;
Employee() {}
Employee(String name, int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void showInfo() {
System.out.println(this.name +" : "+this.age);
System.out.println();
}
}
결과는 위와 같다.