공부하는 블로그

배열과 ArrayList (Java Programming) 본문

Develop/JAVA

배열과 ArrayList (Java Programming)

모아&모지리 2018. 1. 25. 14:47

배열의 정의와 특징
* 단일 값을 저장하는 용도로 사용(10, 'ㅁ', "sss", true, 1.22...)
* 처음에 길이(방의 갯수)를미리 설정하고 나중에, 변경이 불가능

ArrayList의 정의와 특징
* 객체를 저장하는 용도로 사용(new ObjectClass()...) 
* 객체를 추가하면 자동으로 길이가 변경 
* 객체를 삭제하면 길이가 줄어든다 
* 단일 값을 저장할 수 있지만, 다양한 타입을 저장할 수도 있다

배열과 ArrayList의 공통점
* index가 자동으로 부여된다

배열과 ArrayList 비교
* 배열 선언: 데이터타입[] 배열명 = new 데이터타입[방의 갯수]; 
* ArrayList: ArrayList<데이터타입> 객체명 = new ArrayList<데이터타입>(); 
                                   (클래스)  (ArrayList)                            (클래스)

* 배열의 데이터를 추출하여 대입 : 데이터타입 변수명 = 배열명[index] 
* ArrayList : 데이터타입 변수명 = arrayList객체명.get(index); 

* 배열의 방의 갯수는 미리 설정하고, 나중에 변경 불가능!!!! 
* ArrayList의 방의 갯수는 추가할 때마다 자동 증가!!!! 
* ArrayList는 방의 index를 이용하여 삭제도 가능 : ArayList객체명.remove(index); 
=> 방을 remove() 메서드로 삭제할 경우, 삭제하기 직전에 방의 데이터를 반환하고 삭제된다! 

// ArrayList에 데이터를 추가할 경우 add()를 사용 
// ArrayList에 있는 데이터를 추출할 경우 get()를 사용 
// ArrayList에 있는 데이터를 삭제할 경우 remove() 
// ArrayList에 있는 데이터의 갯수 size()

* 배열의 방의 갯수 : 배열명.length; 
ArrayList : ArrayList객체명.size(); 또는 ArrayList객체명.length();

ArrayList 사용법

* ArrayList에 객체를 추가할 경우에는 미리 어떤 객체가 추가되는지를 알려주어야 한다 
* ArrayList는 다른 패키지에 존재하기 때문에 미리 해당 클래스를 내 프로젝트로 불러들여야 한다. 
  
1. ArrayList 클래스를 내 프로젝트로 불러 들인다. 
import java.util.ArrayList; 
=> 클래스 선언부 위쪽에 위치하고 package 선언부 아래쪽에 위치 (그 사이에 있어야 한다.) 

2. ArrayList를 사용하기 위해서는 먼저 ArrayList 객체생성 
ArrayList a = new ArrayList(); 

3. ArrayList에 추가될 객체의 타입 예약 (즉, ArrayList에 미리 알려준다) 

public class Test{ 
            int a = 10; 
            public Test(){ 
            } 


위의 Test 클래스를 객체로 만들어서 ArrayList에 추가할 경우,

ArrayList<Test> a = new ArrayList<Test>();  
Test t1 = new Test(); 
a.add(t1); // a에 t1 객체를 삽입 
* 위에 2줄 코드는 a.add(new Test()); 와 동일 

Test 클래스에 다른 생성자가 있다고 가정해보자 

public class Test{ 
           int a = 10; 
            public Test(){   // 기본생성자
             } 

          public Test(int n){  // 또 하나의 생성자
                     a=n; 
         } 

에서 

ArrayList<Test> a = new ArrayList<Test>(); 
a.add(new Test(110)); 
을 하면 기본 생성자 밑에 있는 또 하나의 생성자가 호출된다.

* set 메소드
ArrayList명.set(index, 바꿀 객체);

정리
* 한 개의 데이터를 보관하기 위해서는 변수가 사용된다 
* 여러개의 데이터를 보관하기 위해서는 (단, 동일한 데이터 타입인 경우) 배열이 사용된다 
* 여러개의 데이터를 보관하기 위해서는 (단, 다양한 형태) 객체로 만들어줘야 한다. 
   예) ObjectClass



'Develop > JAVA' 카테고리의 다른 글

자바 복습  (0) 2018.02.19
OOP의 특징(객체지향의 특징)  (0) 2018.01.25
Arraylist (자료구조)  (0) 2018.01.25
String과 String buffer의 차이점?  (0) 2018.01.24
Singleton Design Pattern (싱글톤 디자인 패턴, 싱글톤 패턴)  (0) 2018.01.24