하루의 일상💜

[JAVA] ArrayList 추가, 변경, 삭제 본문

JAVA/실습

[JAVA] ArrayList 추가, 변경, 삭제

도하루박 2022. 8. 19. 16:38
반응형
■ ArrayList를 사용하여 정렬된 객체들을 추가, 변경, 삭제를 한다.
public class ArrayListTest {
	public static void main(String[] args) {

		ArrayList<Integer> datas= new ArrayList<Integer>();
		datas.add(10);
		datas.add(90);
		datas.add(40);
		datas.add(20);
		datas.add(80);
		datas.add(70);
		datas.add(50);
		
//		System.out.println(datas);
//		오름차순으로 정렬
		Collections.sort(datas);
		System.out.println(datas);
		
//		내림차순으로 정렬
	    Collections.reverse(datas);
	    System.out.println(datas);
	      
//	    랜덤으로 정렬
	    Collections.shuffle(datas);
	    System.out.println(datas);
	    

//	    추가
//	    50뒤에 500을 추가
	    if(datas.contains(50)) {
	    	datas.add(datas.indexOf(50)+1,500);
	    	System.out.println(datas);
	    }
	    
//	    수정
//	    90을 9로 수정
	    if(datas.contains(90)) {
	    	try {
	    		System.out.println(datas.set(datas.indexOf(90), 9)+"이 9로 변경");
	    		System.out.println(datas);
	    	}catch(IndexOutOfBoundsException e) {
	    		System.out.println("인덱스범위 벗어남");
	    	}
	    	
//	     삭제
//	     80삭제
// 		인덱스로 삭제
	    	if(datas.contains(80)) {
	          System.out.println(datas.remove(datas.indexOf(80)) + "삭제됨");
	          System.out.println(datas);
	       }
	    	
//       값으로 삭제
	    	 if(datas.remove(Integer.valueOf(80))) {
	           System.out.println("삭제 성공");
	           System.out.println(datas);
	        }	
	    }
	}
}

ArrayList로 7index를 갖는 값을 무작위로 설정하였다.

[10, 90, 40, 20, 80, 70, 50]
[10, 20, 40, 50, 70, 80, 90]
[90, 80, 70, 50, 40, 20, 10]
[10, 80, 40, 70, 90, 50, 20]
[10, 80, 40, 70, 90, 50, 500, 20]
90이 9로 변경
[10, 80, 40, 70, 9, 50, 500, 20]
80삭제됨
[10, 40, 70, 9, 50, 500, 20]

 

 

기본 설정된 datas를 출력하게 되면 순서에 상관없이 출력이 된다.

이를 정렬하는 방법에는 여러가지가 있다.

● sort() : 오름차순으로 정렬

reverse() : 반대로 내림차순으로 만드는 메서드는 없기 때문에 가운데 기준점으로 앞뒤를 바꿔주는 메서드를 사용해야 한다, ※ 가운데를 기준으로 바꾸기 때문에 오름차순을 쓰로 내림차순을 써야한다.

shuffle() : 무작위로 출력한다.

 

추가 / 50뒤에 500을 추가한다.

add()

shuffle() 을 사용한 상태여서 datas의 값은 계속 변경 될 것이다.
그렇기 때문에 먼저 50의 위치를 찾은 다음 뒤에 500을 넣어 주도록 한다.

add(0,null) 은 저장된 위치(index)에 객체를 저장하는 메소드이다. 
50뒤에 500을 추가 할 것이기 때문에 위치에 +1을 해준다음 500을 넣어준다.

 


수정 / 90을 9로 수정

set()

똑같이 index의 위치를 찾아준 다음 set() 메서드를 사용해 9로 변경해주었지만 set의 리턴타입이 Integer로 대체하기 이전의 값이 리턴이 될 것이다 . 그렇기 때문에 이 것을 try catch를 사용하여야 한다.

 


삭제 / 80삭제 각 인덱스, 값으로 삭제

remove()

삭제할 객체의 index값을 찾아준 다음 remove()를 사용하여 삭제를 해준다. 리턴타입이 지워진 값을 그대로 리턴하기 때문에 try catch를 사용하지 않아도 된다. 

하지만 값으로 삭제할 경우엔 삭제할 값을 입력하여도 인덱스 값으로 인식하게 된다. 

그렇기 때문에 integer의 static 메서드인 valueOf 메서드를 사용하여 Integer로 바꿔야 80이 값으로 인식한다.

 

 

 

 

반응형