본문 바로가기
코스웨어/10년 스마트폰BSP

[BSP]업무일지-김석희-20100824

by 알 수 없는 사용자 2010. 8. 24.
728x90
반응형


컬렉션 프레임워크의 핵심 인터페이스

자바에서는 다양한 자료구조를 켈렉션 이라는 클래스라이브러리를 제공한다. 이는 몇 개의 인터페이스와 실제 구현 클래스,알고리즘으로 구성되어 있으며,외부에서 일반적인 방식으로 접근 할 수 있도록 프레임워크를 제공하고 있다.

자바는 객체를 어떻게 묶을 것인지를 결정할 수 있는 List , Set, Queue ,Map이라는 4가지 타입의 컬렉션인터페이스를 제공한다.

인터페이스

설명

List

요소를 일렬로 유지한 채 위치에 접근하고, 요소들이 순차적으로 유지된다. 각요소의 접근은 해당 인텍스를 이용해서 접근한다.

구현 클래스 :ArrayList , LinkedList,  Stack,  Vector

Set

동일한 요소를 가질 수 없으며 데이터의 중복을 허용하지 않는다.순서를 유지하지 않는 데이터의 집합이다.

구현 클래스 :HashSet ,TreeSet

Queue

FIFO기능을 정의한 인터페이스 이다.

구현클래스 LinkedList

 

 List 인터페이스

List인터페이스는 중복을 허용하면서 저장 순서가 유지되는 컬렉션을 구현하는데 사용된다.

List인터페이스로 구현한 클래스로는 Vector, ArrayList, Stack, LinkedList등이 있다.

메소드

설명

Void add(int index, E element)

Index 위치에 element로 주어진 객체를 저장하고 해당 위치의 객체는 뒤로 밀려난다.

E get(int index)

Index 위치의 객체를 반환한다.

E set(int index, E element)

Index 위치의 요소를 element로 주어진 객체를 대체한다

E remove(int index)

Index 위치의 객체를 지운다.

Int indexOf(Object o)

전달 인자로 준 객체를 앞에서부터 찾아 해당 위치를 반환하고 못찾으면 -1를 반환한다.

Int lastindexOf(Object o)

객체를 마지막 위치부터 찾는다.

 

ArrayList객체 생성 방법

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

ArrayList 다음에 기술한 <>를 타입 파라미터라고 부른다. 타입 파라미터는 요소들의 타입을 제한하는 역할을 한다. ArrayList<Integer>로 생성된 객체는 요소로써 Integer형의 데이터만 저장할 수 있게 된다.

import java.util.ArrayList;

 

 

public class JavaTest {

       public static void main(String[] args) {

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

            

             list.add(90); //데이터 추가

             list.add(80);

             list.add(75);

             list.add(50);

             list.add(57);

             list.add(2, 100);//인덱스가 2 위치에 100넣고 그뒤 요소들은 한칸씩 밀린다.

             System.out.println(list);

             list.set(3,13);//인덱스3 위치에 13으로 변경

             System.out.println(list);

             list.remove(2); //인덱스가2 위치를 삭제

             System.out.println(list);

       }

 

}


 결과



Android

대화상자

public class OrcVsHuman extends Activity {

 

       public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        Button btn=(Button)findViewById(R.id.button);         //버튼 id받기

        btn.setOnClickListener(new View.OnClickListener() {   //버튼 리스너

                    public void onClick(View v) {                               //클릭이 되었을때 대화상자생성

                           new AlertDialog.Builder(OrcVsHuman.this)

                           .setTitle("종족선택")

                           .setMessage("사람이냐 오크냐?")

                           .setIcon(R.drawable.iu)

                           .setPositiveButton("사람", mClickListener)

                           .setNegativeButton("오크", mClickListener)

                           .show();

                    }

             });

    }

    private DialogInterface.OnClickListener mClickListener   //1번째대화상자의 버튼 리스너

    = new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {

                           switch(which){

                           case DialogInterface.BUTTON1:                        //버튼1이면 다른 대화상자호출

                                 new AlertDialog.Builder(OrcVsHuman.this)

                                 .setTitle("성별")

                                 .setMessage("여자이냐 남자냐?")

                                 .setIcon(R.drawable.iu)

                                 .setPositiveButton("여자", mClick)

                                 .setNegativeButton("남자", mClick)

                                 .show();

                                 break;

                           case DialogInterface.BUTTON2:

                                 new AlertDialog.Builder(OrcVsHuman.this)//버튼2 또다른 대화상자호출

                                 .setTitle("종족")

                                 .setMessage("걍오크이냐 수퍼오크냐?")

                                 .setIcon(R.drawable.icon)

                                 .setPositiveButton("걍오크", ClickListener)

                                 .setNegativeButton("수퍼오크", ClickListener)

                                 .show();

                                 break;

                           }

             }

       };

       private DialogInterface.OnClickListener mClick //1대화상자버튼 1에대한 2번째대화상자 버튼리스너

       =new DialogInterface.OnClickListener() {

             public void onClick(DialogInterface dialog, int which) {

                    switch(which){

                    case DialogInterface.BUTTON1:                 //해당 토스트 출력

                          Toast.makeText(OrcVsHuman.this, "여자다", Toast.LENGTH_SHORT).show();

                           break;

                    case DialogInterface.BUTTON2:

                          Toast.makeText(OrcVsHuman.this, "남자다", Toast.LENGTH_SHORT).show();

                    }

             }

       };

       private DialogInterface.OnClickListener ClickListener       //1대화상자버튼2에대한 2번째대화상자 버튼리스너

       =new DialogInterface.OnClickListener() {

             public void onClick(DialogInterface dialog, int which) {

                    switch(which){

                    case DialogInterface.BUTTON1:

                           Toast.makeText(OrcVsHuman.this, "걍오크다", Toast.LENGTH_SHORT).show();

                           break;

                    case DialogInterface.BUTTON2:

                           Toast.makeText(OrcVsHuman.this, "수퍼오크다다", Toast.LENGTH_SHORT).show();

                    }

             }

       };

}




결과


 

728x90