컬렉션 프레임워크의 핵심 인터페이스
자바에서는 다양한 자료구조를 켈렉션 이라는 클래스라이브러리를 제공한다. 이는 몇 개의 인터페이스와 실제 구현 클래스,알고리즘으로 구성되어 있으며,외부에서 일반적인 방식으로 접근 할 수 있도록 프레임워크를 제공하고 있다.
자바는 객체를 어떻게 묶을 것인지를 결정할 수 있는 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 다음에 기술한 <>를 타입 파라미터라고 부른다. 타입 파라미터는 요소들의 타입을 제한하는 역할을 한다. 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();
}
}
};
}
결과
'코스웨어 > 10년 스마트폰BSP' 카테고리의 다른 글
[BSP]업무일지 - 임종현- 20108030 (0) | 2010.08.30 |
---|---|
[BSP]업무일지-전현수-20100827 (0) | 2010.08.27 |
[BSP]업무일지-손대원-20100826 (0) | 2010.08.26 |
[BSP]업무일지-김상식-20100825 (5) | 2010.08.26 |
[BSP]업무일지-서유해-20100823 (0) | 2010.08.23 |
[BSP]업무일지- 한정효 2010-08-20 (0) | 2010.08.20 |
[BSP]업무일지- 정호영 2010-08-19 (0) | 2010.08.20 |
[BSP]업무일지-김동훈-20100818 (0) | 2010.08.20 |