자바 배열안에 임의의 값 입력하고 삭제하는 방법...

조회수 2691회
public static int ListInsertDeletetCount(int []array){
 int count = 0;
 Random rnd = new Random();
     for(int i=0; i<100; i++){
        int dst = rnd.nextInt(list.length-1);
        for(;;) {
           //dst 위치에 dst 숫자 삽입
         count++;
       }
        int dat = rnd.nextInt(list.length-1);
        for(;;){
           //dst 위치에서 삭제
        count++;
       }
   count = count / 200;
   return count;
}

코드는 위와 같은데용 랜덤한 배열 위치에 랜덤한 값을 입력하고 삭제하고를 반복하는 건데 삽입은 list[dst] = dst; 가 아닌가요? 계속해서 에러가 뜨네요 ㅠㅜ 삭제는 뭔지 감이 안와서.. remove 로도 해결이 안되서 여쭤봅니다.

1 답변

  • 먼저 에러가 뜬다고 했는데 에러 메세지가 뭔가요?

    주어진 코드만 볼 때 list 란 변수선언이 코드에는 없습니다.

    즉 있지도 않는 변수를 핸들링 하고 있습니다.

    또한 array 라는 참조형 변수(배열)를 받고 있는데 array 의 요소들을 핸들링 하는 것 아닌가요?

    배열이라는 것은 일종의 고정 자료형입니다. 여기서 고정 자료형이라는 의미는 한번 할당하면 변경할 수 없다는 의미입니다.

    int 10개짜리 배열을 선언하고 1개를 지운다고 9개가 되는 자료형이 아니라는 겁니다.

    그러면 배열로 요소 삭제를 못하는가? 아닙니다. 사실 삭제가 아니라 삭제하고자 하는 요소를 빼고 나머지를 새로운 배열에 복사를 하는 형태로 구현합니다.

    그렇게 구현되어 있는 자바쪽 자료구조가 ArrayList 입니다.

    즉 질문자가 원하는 형태의 자료구조가 ArrayList 입니다. array 대신 ArrayList로 변경하면 쉽게 해결될 것이고 배열로 처리하는 방법을 알고 싶으면 ArrayList 소스 코드를 보시면 됩니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)