List 계열
List 계열은 순서가 있고 중복이 허용된다.
List 인터페이스의 주요 구현 클래스에는 ArrayList, LinkedList가 있다.
함수 | 설명 |
boolean add(E e) | 요소를 추가 |
void add(int index, E e) | 특정 위치에 전달된 요소를 추가 |
void clear() | 모든 요소를 제거 |
boolean contains(Object o) | 전달된 객체를 포함하고 있는지를 확인 |
boolean equals(Object o) | 전달된 객체가 같은지를 확인 |
E get(int index) | 특정 위치에 존재하는 요소를 반환 |
boolean isEmpty() | 비어있는지를 확인 |
Iterator<E> iterator() | 반복자(iterator)를 반환 |
boolean remove(Object o) | 전달된 객체를 제거 |
boolean remove(int index) | 특정 위치에 존재하는 요소를 제거 |
E set(int index, E e) | 특정 위치에 존재하는 요소를 전달받은 객체로 대체 |
int size() | 요소의 총 개수를 반환 |
Object[] toArray() | 모든 요소를 Object 타입의 배열로 반환 |
List에 요소를 추가하고 삽입하고 출력해보자.
import java.util.ArrayList; import java.util.List;
public class ex01 {
public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); System.out.println(list);
//3번째 요소에 삽입하기 list.add(2,"X"); System.out.println(list);
//첫번째 요소에 삽입하기 list.add(0,"Y"); System.out.println(list);
for(String value : list) System.out.print(value + " "); } } |
실행 결과] [A, B, C] [A, B, X, C] [Y, A, B, X, C] Y A B X C |
List에서 요소를 추출하고 변경하고 삭제하고 요소의 총개수를 출력해보자.
import java.util.ArrayList; import java.util.List;
public class ex01 {
public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("100"); list.add("200"); list.add("300"); System.out.println(list.get(0)); System.out.println(list.get(2));
list.add("400"); System.out.println("기존 : " + list); // 3번째 요소의 값을 변경해보자 list.set(3, "450"); System.out.println("변경 : " + list); // 3번째 요소 삭제하기 list.remove(2); System.out.println("삭제후 : " + list); // 요소의 총 개수구하기 System.out.println("총 개수 : " + list.size()); } } |
실행 결과] 100 300 기존 : [100, 200, 300, 400] 변경 : [100, 200, 300, 450] 삭제후 : [100, 200, 450] 총 개수 : 3 |
List에서 데이터를 정렬하고 요소들을 앞뒤를 반전시켜 출력하기
import java.util.ArrayList; import java.util.Collections; import java.util.List;
public class ex01 {
public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("홍길동"); list.add("이순신"); list.add("김철수"); list.add("최영희"); list.add("일지매");
System.out.println("변경전 : " + list); // 오름차순으로 정렬 Collections.sort(list); System.out.println("변경후(오름차순) : " + list);
// 내림차순으로 정렬 (reverse()함수 앞뒤바꾸기) Collections.reverse(list); System.out.println("변경후(내림차순) : " + list); } } |
실행 결과] 변경전 : [홍길동, 이순신, 김철수, 최영희, 일지매] 변경후(오름차순) : [김철수, 이순신, 일지매, 최영희, 홍길동] 변경후(내림차순) : [홍길동, 최영희, 일지매, 이순신, 김철수] |
import java.util.ArrayList; import java.util.List;
public class ex01 {
public static void main(String[] args) { List<String> list1 = new ArrayList<>(); list1.add("A"); list1.add("B"); list1.add("C");
List<String> list2 = new ArrayList<>(); list2.add("A"); list2.add("B");
List<String> list3 = new ArrayList<>(); list3.add("C"); list3.add("D");
//지정한 요소가 List에 포함되어 있는지 확인 System.out.println(list1.contains("A")); System.out.println(list1.contains("D")); //모든 요소가 List에 포함되어 있는지 확인 System.out.println(list1.containsAll(list2)); System.out.println(list1.containsAll(list3)); } }
|
실행결과] true false true false |
이 프로그램은 이름, 국어, 영어, 수학점수를 이용하여 합계와 평균을 출력하는 것이다. ArrayList를 이용하고 제네릭을 사용한 것으로 작성화 보자.
import java.util.Iterator; import java.util.*;
class Student { String name; int kor, eng, math;
Student(String name, int kor, int eng, int math) { this.name = name; this.kor = kor; this.eng = eng; this.math = math; }
int getTotal() { return kor + eng + math; }
float getAverage() { return (int) ((getTotal() / 3f) * 10 + 0.5) / 10f; } public String toString() { return name + "\t" + kor + "\t" + eng + "\t" + math + "\t" + getTotal() + "\t" + getAverage(); } }
public class Main {
public static void main(String[] args) { ArrayList<Student> list = new ArrayList<Student>(); list.add(new Student("홍길동", 100, 100, 100)); list.add(new Student("남궁성", 90, 70, 80)); list.add(new Student("김자바", 80, 80, 90)); list.add(new Student("이자바", 70, 90, 70)); list.add(new Student("안자바", 60, 100, 80));
Iterator it = list.iterator();
System.out.println("이름\t국어\t영어\t수학\t합계\t평균"); while (it.hasNext()) System.out.println(it.next()); } } } |
실행결과] 홍길동 100 100 100 300 100.0 남궁성 90 70 80 240 80.0 김자바 80 80 90 250 83.3 이자바 70 90 70 230 76.7 안자바 60 100 80 240 80.0 |
제품번호, 이름, 색상을 이용하여 ArrayList 클래스로 작성해보자.
import java.util.ArrayList; import java.util.List; import java.util.Iterator;
class Product { private String code; //제품번호 private String name; //제품이름 private String color; //제품색상
public Product(){ this("10001","냉장고","메탈"); }
public Product(String code, String name,String color){ this.code=code; this.name=name; this.color=color; }
public String getCode() { return code; } public void setCode(String code) { this.code = code; }
public String getName() { return name; } public void setName(String name) { this.name = name; }
public String getColor() { return color; } public void setColor(String color) { this.color = color; } }
public class Main {
public static void main(String[] args) { ArrayList<Product> pList= new ArrayList<Product>(); Product p1 = new Product(); Product p2=new Product("10002","세탁기","은색"); Product p3=new Product("10003","TV","검정색");
pList.add(p1); pList.add(p2); pList.add(p3);
Iterator<Product> it = pList.iterator();
System.out.println("제품번호\t제품명\t색상"); while (it.hasNext()) { Product pro = it.next(); System.out.println(pro.getCode() + "\t" + pro.getName() + "\t" + } } } |
실행결과] 제품번호 제품명 색상 10001 냉장고 메탈 10002 세탁기 은색 10003 TV 검정색 |
위와 같음
public class Main { public void getProdInfo(List<Product> list){ System.out.println("제품번호\t제품이름\t제품색상"); for(int i=0; i<list.size();i++){ Product prod=(Product)list.get(i);
System.out.print(prod.getCode() + "\t"); System.out.print(prod.getName() + "\t"); System.out.println(prod.getColor()); } }
public static void main(String[] args) { ArrayList<Product> pList= new ArrayList<Product>(); Product p1 = new Product(); Product p2 = new Product("10002","세탁기","은색"); Product p3 = new Product("10003","TV","검정색");
pList.add(p1); pList.add(p2); pList.add(p3);
Main p = new Main();
p.getProdInfo(pList); } } |
'프로그램언어 > 자바' 카테고리의 다른 글
Collection 계열 클래스4 (0) | 2020.11.14 |
---|---|
Collection 계열 클래스3 (0) | 2020.11.14 |
Collection 계열 클래스1 (0) | 2020.11.14 |
컬렉션 프레임워크 문제 (0) | 2020.11.08 |
스윙 컴포넌트 그리기3 (0) | 2020.11.05 |