top of page

ArrayList 사용하기

MVC 모델, 뷰, 컨트롤이 분리되어 있지 않는 언어는 사장되고 있습니다. 즉 rs형태를 사용하면 안된다는 겁니다.
그래서 ArrayList를 사용합니다. Struts2가 MVC 형태가 되겠습니다. Spring은 아닌 것 같습니다.

Array는 배열, List는 데이터를 일렬로 늘어놓은 자료구조를 말합니다.

Array(배열)은 같은 타입에 많은 변수를 대신할 수 있는 자료구조입니다. ArrayList는 글쎄요. 하하하.

 

ArrayList는 Array(배열)에 비해 속도는 느리지만 동적 배열, 불필요할 때 삭제 가능, 아무 타입이나 사용가능, 정렬 가능 등의 장점이 있다고 합니다. 그리고 ArrayList는 객체이기 때문에 메소드(add, contains, esEmpty, remove, size, indexOf 등)를 가지고 있죠. 

 

 

■ ArrayListMain.java

 

      package firstpackage;

      import java.util.ArrayList;

      public class ArrayListMain {

        public static void main(String[] args) {

          ArrayList<String> list = new ArrayList<String>();

          //<String>은 type입니다. 모양이 그지같지요. 타입이니까 <String> 말고 <integer>도 되겠습니다.

          String으로 되어 있는 ArrayList라고 생각하면 쉽지요.

          list.add("딸기");

          list.add("포도");

          list.add("키위");

          list.add("복숭아");

          list.add("오렌지");

          list.add("수박");

          for(int i=0; i<list.size(); i++){

            System.out.println(list.get(i));

          }

          System.out.println("----");

          list.remove(1); // index는 0부터 시작합니다.

          list.remove(3); // 1 포도가 사라졌으므로 3에 해당하는 것은 오렌지입니다.

          list.add("귤");

          for(int i=0; i<list.size(); i++){

            System.out.println(list.get(i));

          }

        }

      }

      // 이정도 만으로는 배열과 비슷합니다. 대신 bean과 함께 사용하면 테이블 처럼 만들어져 근사해집니다.

 

 

     결과 

     10대군요. 

     20대군요.

 

 

일단 ArrayList는 모양이 그지같이 생겼습니다. 그래서 많이들 혼동하지요.

선언

   private static ArrayList<integer> mArrayList;   <-- 정수객체들로 이루어진 ArrayList 객체를 만들겠다는 의미

ArrayList 생성

   mArrayList = new ArrayList<integer>();

ArrayList 값 추가

   mArrayList.add(1);

   mArrayList.add(2);

ArrayList 갯수(크기) 확인

   mArrayList.size();

ArrayList 값 확인

   mArrayList.get(i);

ArrayList 특정 index 값 제거

   mArrayList.remove(0); <-- 0번째 index가 지워지면서 자동으로 1번이 0번째 index가 됨.

ArrayList 특정 index 값 추가

   mArrayList.add(0, 7777); <-- 0번째 index가 추가되고 나머지 index들은 뒤로 밀림.

ArrayList 특정 index 값 수정

   mArrayList.set(0, 77779);

ArrayList 값 전체 삭제

   mArrayList.clear();

ArrayList의 값 존재 여부 확인

   boolean isEmpty = mArrayList.isEmpty();

 

인터넷에 재미있는 예가 있어 소개합니다.

 

      import java.util.ArrayList;

 

      public class Test {

         public static void main(String[] args)

         {

            ArrayList<Cat> mList = new ArrayList<Cat>();    

                 // import를 하지 않으면 java.util.ArrayList<Cat> mList = new java.util.ArrayList<Cat> (); 사용

 

            Cat c = new Cat();

            Cat d = new Cat();

 

            mList.add(c);

            mList.add(d);

 

            int sizeOfArrayList = mList.size();

            int index = mList.indexOf(c);

            boolean isIn = mList.contains(c);

            boolean isEmpty = mList.isEmpty();

 

            mList.remove(c);

            mList.remove(d);

         }

      }

bottom of page