내가 보려고 정리하는/JAVA

<List> 생성, 값 추가, 끼워 넣기, 바꾸기, 삭제, 출력, 반환값, 차례로 삭제 까지 정리!

보동이용용 2022. 12. 16. 20:16
반응형
// List 생성하기
List list = new ArrayList();


// 형 지정하여 생성하기 
List<Integer> list = new ArrayList<>();


// List에 자료 넣기
list.add(new Integer(10)); 
list.add(10);   //자동박싱


// List에 값 끼워넣기
list.add(2, 20);  //2번째 인덱스자리부터 뒤로 밀고 20을 추가한다.


// List 값 출력하기
System.out.println(list.add(20)) //true  //결과 반환 : boolean
System.out.println(list) //[10, 10, 20, 20]  ->toString 메서드가 재정의 되어있기에 출력 가능


// set(index, value) : index자리에 값을 value로 교체하고 int before을 추가하여 기존값을 반환
list.set(2, 40);
System.out.println(list) // [10, 10, 40, 20] 
int before = list.set(0, 40); // 기존값을 반환 : 10 //[40, 10, 40, 20]


// remove(index) : index자리 값을 지우고 boolean을 추가하면 성공 여부를 true/false로 반환.
list.remove(3);
System.out.println(list) // [40, 10, 40]
List는 배열의 형태를 받는 컬렉션 프레임워크. 형을 정해주면 혼돈이 없어 좋고, 추가할 때 자동박싱이 되어서 편하다.

.add(value) : 값 추가
.add(index, value) : index 자리에 값 끼워넣기 
.set(index, value) : 값 바꾸기
.remove(index) : 값 삭제
.get(index) : 값 받기, 출력가능

 

반환값이 있다.

.add는 boolean(true/false)형태로,
.remove는  .add와 같이 boolean(true/false)형태로,
.set은 int before = 을 이용하여 이전 값을 반환한다.

 

// 리스트 차례로 삭제하기 ( for문 돌리기 )
System.out.println(list2); [50, 40, 10, 20, 20]

평소 하던대로 해보면,
for(int i=0; i <list2.size(); i++{
	list2.remove(i);
    System.out.println(list2);
}

//[40, 10, 20, 20] //0번째 제거
//[40, 20, 20]     //1번째 제거
//[40, 20]         // 2번째 제거   ....> 제대로 지우지 못함.

리스트는 거꾸로 뒤에서부터 지워야 한다.
for(int i = list2.size()-1; i >= 0; i--){
	list2.remove(i);
    System.out.println(list2);
}

[50, 40, 10, 20] //4번째 제거
[50, 40, 10]     //3번째 제거
[50, 40]         //2번째 제거
[50]             //1번째 제거
[]               //0번째 제거   ....> 제거 성공!​

 

반응형