Java Collection framework(List)
인터페이스별 특징 중요하니 외울것.
/*
* 컬렉션 프레임워크
* - List , Set 인터페이스가 상속 , 따로 Map인터페이스 가 있다
*
* - List : 순서가 존재함 , 데이터 중복 허용
* 구현클래스 : ArrayList, LinkedList , Stack ,Vector 등등
*
* - Set : 순서를 유지하지 않음, 데이터 중복 허용하지 않음
* 구현클래스 : HashSet , TreeSet 등등
*
* - Map : key,value 의 쌍으로 이루어진 데이터 집합
* 순서를 유지하지 않음 , key는 중복이 되지 않고 value는 중복 허용
* 구현클래스 : HashMap, TreeMap, Hashtable , Properties 등등
*
* 컬렉션 : 여러 데이터들을 모아놓은 것
* framework : 표준화 , 정형화된 프로그래밍 방식
* 라이브러리 : 공통으로 사용될만한 유용한 기능을 모듈화
*
*/
/*
* 배열과 List 동일한 개념
* 배열은 크기를 변경할 수 없다.(새로운 배열 생성후 데이터 복사 작업이 필요)
* 비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸림
*
* ==> 배열의 개선 : List(ArrayList 내부적으로는 배열의 동작방식과 똑같이 돌아감)
*
*
* LinkedList
* -ArrayList 단점 보완
*
* 읽기(접근시간) 추가/삭제 비고
* ArrayList 빠르다 느리다 순차적인 추가/삭제는 더 빠름 , 비효율적 메모리 사용
* LinkedList 느리다 빠르다 데이터가 많을수록 접근성이 좋음
*/
List 연습 예제
public class ListEx1 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
ArrayList<String> list2 = new ArrayList<>();
System.out.println(""+list.size()); // 배열의 length 같은개념
System.out.println(""+list.isEmpty()); // boolean 값
//add() : 요소 추가
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list2.add("자바");
list2.add("html");
list2.add("script");
list2.add("서블릿");
System.out.println(list);
System.out.println(list2);
//추가할 내용이 없다면
String fruits[] = {"사과" , "포도","멜론"};
List<String> list3 = Arrays.asList(fruits);
System.out.println(list3);
//추가할 내용이 있다면
List<String> list4 = new ArrayList<>(Arrays.asList(fruits));
list4.add("참외");
list4.add("딸기");
System.out.println(list4);
//추가할 내용이 없다면
String fruits[] = {"사과" , "포도","멜론"};
List<String> list3 = Arrays.asList(fruits);
System.out.println(list3);
//추가할 내용이 있다면
List<String> list4 = new ArrayList<>(Arrays.asList(fruits));
list4.add("참외");
list4.add("딸기");
System.out.println(list4);
//add(int index, 요소)
list.add(3,6); //3번자리 6추가(기준수 뒤로 밀림)
System.out.println(list);
//set()
list.set(3, 7); //3번자리 7로 바꿈
System.out.println(list);
//remove()
list2.remove(0); //0번자리 값 삭제
System.out.println(list2);
list4.remove("사과"); // "사과" 삭제
System.out.println(list4);
//get()
System.out.println(list4.get(2)); // 특정위치 요소 불러오기
//indexof()
System.out.println(list2.indexOf("서블릿")); // 요소의 위치 불러오기
//sort
Collections.sort(list); // 오름차순
System.out.println(list);
//Comparator.naturalOrder(): 오름차순 Comparator.reverseOrder(): 내림차순
list.sort(Comparator.reverseOrder());
System.out.println(list);
}
}
'개발 > K-DigitalTraining 수강중' 카테고리의 다른 글
Java.io 설명과 , 예시 (0) | 2023.03.14 |
---|---|
Java Map interface (0) | 2023.03.13 |
Java LocalDate (0) | 2023.03.10 |
Java SimpleDateFormat (0) | 2023.03.10 |
Java Calendar (0) | 2023.03.09 |