728x90
ArrayList 의 특징
- ArrayLists는 Collection 프레임워크의 일부로써 표준 배열보다는 느리지만 배열을 여러번 수행할 때 편리하다.
- List 인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다.
- ArrayLists는 Object배열을 이용해서 데이터를 순차적으로 저장한다.
- ArrayLists는 배열의 용량을 초과하면 자동으로 부족한 크기만큼 용량을 늘려준다.
- 주로 <Integer>를 많이 사용하고 String, Character 타입으로도 선언 할 수 있다.
예제 1)
ackage Java13;
import java.util.ArrayList;
import java.util.Iterator;
public class Test07 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("홍길동");
list.add("이순신");
list.add("강감찬");
list.add("을지문덕");
list.add("연개소문");
System.out.println(list);
System.out.println("---------------------");
System.out.println("list[0] : " + list.get(0));
System.out.println("list[2] : " + list.get(2));
}
}
예제 2)
package Java13;
import java.util.ArrayList;
import java.util.Scanner;
public class Test08 {
public static void main(String[] args) {
ArrayList<String> arr = new ArrayList<String>();
outer: while (true) {
System.out.print("아이디 생성 : ");
Scanner sc = new Scanner(System.in);
String id = sc.next();
for (int i = 0; i < arr.size(); i++) {
/*
* if (id.contentEquals(arr.get(i))) {
* System.out.println("중복된 ID");
* continue outer;
* }
*/
if (arr.contains(id)) {
System.out.println("중복된 ID");
continue outer;
}
}
arr.add(id);
for (int j = 0; j < arr.size(); j++) {
System.out.println(arr.get(j));
}
}
}
}
예제 3)
package Java13;
import java.util.ArrayList;
import java.util.Scanner;
class Person{
private String name;
private int age;
private String tel;
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getTel() {
return tel;
}
}
class PersonManage{
public void personMgr() {
int select;
Person p;
ArrayList<Person> personArr = new ArrayList<>();
while (true) {
System.out.println("1. 정보추가");
System.out.println("2. 정보삭제");
System.out.println("3. 전체정보");
System.out.println("4. 종료");
System.out.println("항목선택 : ");
Scanner scan = new Scanner(System.in);
select = scan.nextInt();
switch (select) {
case 1:
p=new Person();
System.out.println("정보추가");
System.out.println("이름 : ");
p.setName(scan.next());
System.out.println("나이 : ");
p.setAge(scan.nextInt());
System.out.println("전화 : ");
p.setTel(scan.next());
personArr.add(p);
System.out.println("정보가 저장되었습니다.");
System.out.println("------------");
break;
case 2:
System.out.println("정보삭제");
System.out.println("삭제할 이름");
String name = scan.next();
for(int i=0; i<personArr.size(); i++) {
if (personArr.get(i).getName().contentEquals(name)) {
personArr.remove(i);
System.out.println(name + "의 정보를 삭제합니다.");
break;
} else {
if(i+1==personArr.size()); // 데이터가 없음
System.out.println(name + "이 없습니다.");
}
}
break;
case 3:
System.out.println("전체 정보");
System.out.println("등록인 수" + personArr.size() + "명");
for(int j=0; j<personArr.size(); j++) {
System.out.println("이름 : " + personArr.get(j).getName());
System.out.println("나이 : " + personArr.get(j).getAge());
System.out.println("번호 : " + personArr.get(j).getTel());
System.out.println("-------");
}
break;
default:
System.out.println("프로그램 종료");
}
}
}
}
public class Test09 {
public static void main(String[] args) {
PersonManage pMgr = new PersonManage();
pMgr.personMgr();
}
}
※ 컬렉션 프레임윅 간단 정리
인터페이스 | 특징 |
List | 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다. 예) 대기자 명단 |
구현클래스 : ArrayList, LinkedList, Stack, Vector 등 | |
Set | 순서를 유지하지 않는 데이터의 집합, 데이터 중복을 허용하지 않는다. 예) 양의 정수집합, 소수의집합 |
구현클래스 : HashSet, TreeSet 등 | |
Map | 키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합 순서는 유지되지 않으며, 키는 중복으로 허용하지 않고,값은 중복을 허용 한다. 예) 우편번호, 지역번호(전화번호) |
구현클래스 : HashMap, TreeMap, Hashtable, Properties 등 |
| 참고 | 키(Key)란, 데이터 집합 중에서 어떤 값(value)을 찾는데 열쇠(key)가 된다는 의미에서 붙여진 이름이다. 그래서 키(key)는 중복을 허용하지 않는다.
'일단 해보는 코딩 > Java' 카테고리의 다른 글
[Java] Ramda 식 (0) | 2022.08.03 |
---|---|
[Java] Wrapper (boxing/unboxing) (0) | 2022.08.03 |
[Java] 컬렉션 프레임윅(Collections Framework) - Set (0) | 2022.08.03 |
[Java] 컬렉션 프레임윅(Collections Framework) - Map (0) | 2022.08.03 |
[Java] Thread 종류와 Thread 동기화 하는방법 (0) | 2022.08.01 |