List, Set, Map 종류
List 인터페이스
- Vector 클래스
package j210121;
import java.util.*;
public class VectorTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//동적배열
Vector v = new Vector();
v.add("테스트");//새로운 버전에서 사용
v.addElement("테스트2");
System.out.println("v의 크기는?:"+v.size());
for(int i=0;i<v.size();i++) {
String temp = (String)v.elementAt(i);//(String)Object
System.out.println("temp["+i+"]=>"+temp);
}
//다양한 값 저장
Vector v2 = new Vector();
/*
Character c = new Character('a');
v2.add(c);*/
v2.add('a');
//char형으로 넣어도 자동으로 new Character('a')로 변환되어 들어감(boxing)
v2.add(10);//v2.add(new Integer(10)); 와 같음
//중간에 값 추가) insertElementAt(저장할 객체명,삽입할 인덱스번호)
v2.insertElementAt(3.1415, 1);
//값 수정) setElementAt(수정할 객체명,수정할 인덱스번호)
v2.setElementAt("Set", 2); //인덱스2에 위치한 10이 "Set"으로 수정됨
//자료형이 다를때 출력(꺼낼때 자동형변환이 일어나면서 출력됨)
for(int i=0;i<v2.size();i++) {
System.out.println("v2["+i+"]의 값:"+v2.elementAt(i));
}
}
}
/*
v의 크기는?:2
temp[0]=>테스트
temp[1]=>테스트2
v2[0]의 값:a
v2[1]의 값:3.1415
v2[2]의 값:Set
*/
- ArrayList 클래스 ☆☆
리스트 내부에 배열이 들어가 있는 구조
배열을 기반으로 하여 중간 데이터가 삭제되면 그 뒤의 데이터들은 앞으로 한 자리씩 이동한다
package j210121;
import java.util.*;
public class ArrayListTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<String>();
//동적배열
list.add("포도");
list.add("딸기");
list.add("복숭아");
//추가) add(삽입할 위치, 저장할값)
list.add(2, "키위");
//수정) set(수정할 위치,수정할값)
list.set(0, "오렌지");
//삭제) remove(삭제할데이터명)
// remove(인덱스번호)
list.remove("키위");//
System.out.println("list의 크기=>"+list.size());
//검색)
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
System.out.println("========확장for문========");
//for(자료형 출력변수명:배열 또는 컬렉션객체명)
for(String s:list)
System.out.println(s);
}
}
/*
list의 크기=>3
오렌지
딸기
복숭아
========확장for문========
오렌지
딸기
복숭아
*/
** LinkedList 클래스
전체적인 요소가 움직여야 되는 ArrayList와 달리 LinkedList는 각 요소를 노드로 정의하며
노드는 다음 요소의 참조값과 데이터로 구성된다. 따라서 데이터를 연속적으로 구성할 필요없이
데이터의 수정과 삭제가 일어났을때 노드의 참조값을 수정해주기만 하면 된다.
=> 단순 조회용인 경우는 ArrayList가, 동적인 추가 및 삭제가 많은 경우는 LinkedList를 쓰는 것이 좋다
- ArrayList 활용
package j210121.sub;
//회원의 정보를 담아서 출력
import java.util.*;
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class ArrayListTest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("회원명?");
String name = sc.next();
System.out.println("나이는?");
int age = sc.nextInt();
Person p = new Person();
p.setName(name);
p.setAge(age);
Person p2 =new Person();
p2.setName("임시");
p2.setAge(30);
//ArrayList또는 Vector에 담아서 출력---------------------------
ArrayList<Person> list = new ArrayList<Person>();
list.add(p); list.add(p2);
ArrayListTest2 alt = new ArrayListTest2();
alt.getPersonList(list);
}
public void getPersonList(ArrayList<Person> list) {
for(Person st:list) {
System.out.println("이름:"+st.getName());
System.out.println("나이:"+st.getAge());
System.out.println("----------");
}
}
}
/*
회원명?
임시2
나이는?
20
이름:임시2
나이:20
----------
이름:임시
나이:30
----------
*/
Set 인터페이스
- HashSet 클래스
package j210121;
import java.util.*;
public class EnumTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet hs = new HashSet();
hs.add("abc");
hs.add("abc");
System.out.println("hs의 갯수:"+hs.size());//1(중복허용하지 않음)
hs.add("abc2");
hs.remove("abc");
System.out.println("hs의 갯수:"+hs.size());//1
hs.clear();//전부 삭제
System.out.println("비어있나?:"+hs.isEmpty());//true
}
}
/*
hs의 갯수:1
hs의 갯수:1
비어있나?:true
*/
Map 인터페이스
- HashTable 클래스
package j210121;
import java.util.*;
public class EnumTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Hashtable<Integer,String> h = new Hashtable<Integer,String>();
h.put(1,"임시");
h.put(2,"테스트");
h.put(3,"010-1234");
h.put(4,"5678");
String tel = h.get(3);//get(key값)
System.out.println("tel=>"+tel);
}
}
}
/*
tel=>010-1234
*/
'JAVA' 카테고리의 다른 글
[JAVA] 제너릭 <?> <? extends T> <? super T> (0) | 2021.06.22 |
---|---|
[JAVA] 인터페이스 객체 생성하는 3가지 방법 (0) | 2021.06.22 |
[JAVA]컬렉션프레임워크 인터페이스 종류 / List, Set, Map (0) | 2021.06.21 |
[JAVA]컬렉션 프레임워크 개요, wrapper 클래스 boxing unboxing (0) | 2021.06.20 |
[JAVA]Enumeration, Iterator 인터페이스 (0) | 2021.06.19 |