23.05.19 JAVA

천용·2023년 5월 19일
0

고급 JAVA

목록 보기
1/3

List

- 선언 List list1 = new ArrayList();

- 데이터 추가 list1.add("aaa");

- 데이터 개수 list1.size();

- 데이터 가져오기 list1.get(0);

- 데이터 끼워넣기 list1.add(0, "zzz");

- 데이터 변경하기String temp = (String) list1.set(0, "YYY");

데이터 삭제하기 list1.remove(0); -> 인덱스 / list1.remove("bbb"); -> 내용

주의할점
list1.remove(new Integer(111)); // 숫자타입은 이렇게!

// 제네릭을 이용하여 선언할 수 있다. -> 리스트의 형태를 지정해주는것이 제네릭
List list2 = new ArrayList();

list2.add("AAA");
      list2.add("BBB");
      list2.add("CCC");
      list2.add("DDD");
      list2.add("EEE");

	
	//contains(비교객체) -> 리스트에 '비교객체'가 있으면 true, 없으면  false 리턴함.
	System.out.println(list2.contains("DDD"));
	System.out.println(list2.contains("ZZZ"));
	
	// indexOf(비교객체) -> 리스트에서'비교객체'를 찾아 '비교객체'가 있는 index값을 반환함. (없으면 -1 반환함)
	System.out.println("DDD의 index값 : " + list2.indexOf("DDD"));
	System.out.println("ZZZ의 index값 : " + list2.indexOf("ZZZ"));
	System.out.println("---------------------------------");
	
	// 리스트의 삭제처리에 대하여..
	for(int i=0; i < list2.size(); i++) { // 오류가 납니당 리무브때문에 해결법 뒤부터 지우면 된다. 
		list2.remove(list2.get(i));
	}
	System.out.println(list2);
	System.out.println("삭제 후 list2의 개수 : " + list2.size());

위를 결과를 보면 삭제 후 데이터는 BBB, DDD 2개가 남는다. 그 이유는 1. 내용이 삭제되면 리스트가 왼쪽으로 당겨지고 반복횟수를 사이즈로 했기에 remove를 하면 사이즈가 줄어 반복횟수가 줄어들게된다. 뒤부터 지우거나 전체 삭제를 하면된다.

Arraylist

  • 순서가 있고 인덱스가 존재하는 리스트
  • 조회할 때 좋은 리스트

Linkedlist

  • 순서가 없고 서로 연결된 리스트
  • 삽입, 삭제가 잦을 때 좋은 리스트

Stack

  • 후입선출(LIFO)의 자료구조
  • 자료 입력: push(저장할 값)
  • 자료 출력: pop() -> 자료를 꺼내온 후 꺼내온 자료를 stack에서 삭제한다.

Queue

  • 선입선출(FIFO)의 자료구조
  • 자료 입력: offer(저장할 값)
  • 자료 출력: poll() -> 자료를 Queue에서 꺼내온 후 꺼내온 자료를 Queue에서 삭제한다.

정렬
정렬과 관련된 Interface는 Comparable과 Comparator가 있다.
보통 객체 자체에 정렬기능을 부여하기 위해서는 Comparable을 구현하고, 정렬 기준을 별도로 구현하고 싶은 경우에는 Comparator를 구현하여 사용하면 된다.

정렬은 Collection.sort() 메서드를 이용하여 설정한다.
정렬은 기본적으로 '오름차순 정렬'을 수행한다.

compare() 메서드의 반환값을 결정하는 방법
-> 이 메서드가 양수를 반환하면 두 값의 순서가 바뀐다. (오름차순이 기본)
오름차순 정렬일 경우
-> 앞의 값이 크면 양수, 같으면0, 앞의 값이 작으면 음수를 반환하도록 구현한다.

Collections.sort(list); //오름차순 정렬하기

Collections.shuffle(list); // 데이터 섞기

Collections.sort(list, new Desc()); // 내림차순 정렬하기

@Override
    public int compare(String str1, String str2) {
        // TODO Auto-generated method stub
        return str1.compareTo(str2) * -1;
    }
profile
성장하는 개발자가 되자

0개의 댓글