2016-10-18 1 views
0

을 collections.swap 사용하지 않고 배열 목록에서 두 스왑 두 가지 요소 I 및 J :어떻게 지정된 유효한 인덱스 두 요소를 교환하는 방법을 개발하는 방법

public void swap(int I, int j); 

이 내가 바꿔 사용해야하는 방법입니다 배열 목록에있는 두 요소. 원래 목록은 다음과 같습니다 : [a ==> b ==> c ==> d ............] swap (0, 2) 호출 후 : [c ==> b = => a ==> d ............] 출력용으로 인쇄해야합니다.

--------- 첫 번째 클래스 -----

package it179.pa2; 

import java.util.*; 

public class MyArrayList { 

private String list; 


MyArrayList(String list) { 
    this.list = list; 
} 
MyArrayList() { 

} 

public void swap(int i, int j) { 
    int temp1; 
    temp1 = i; 
    i = j; 
    j = temp1;    
    } 

@Override 
public String toString() { 
    return list + "==>"; 
} 

}

----- 두 번째 클래스 -----

package it179.pa2; 
import java.util.*; 

public class MyArrayListTest { 


public static final void main (String[]args) { 

    MyArrayList my = new MyArrayList(); 


    ArrayList<MyArrayList> al = new ArrayList<MyArrayList>(); 

    al.add(new MyArrayList("A")); 
    al.add(new MyArrayList("B")); 
    al.add(new MyArrayList("C")); 
    al.add(new MyArrayList("D")); 
    al.add(new MyArrayList("E")); 
    al.add(new MyArrayList("F")); 
    System.out.print("The original list is: "); 
      for (MyArrayList tmp: al) { 

     System.out.print(tmp);  
    }// end of for 

    System.out.println("After calling swap(0,2): "); 
    System.out.print(al); 
} 
여기

}

+0

요구 사항과 코드를 게시했지만 코드를 설명하지 않았으며 * 구체적인 * 질문을하지 않았습니다. 공란을 기입하십시오. –

+0

스왑 메서드는 테스트 클래스로 호출되고 배열을 인스턴스화하고 스왑 요소 (0,2)를 사용하는 swap 메서드를 사용한다고 가정합니다. –

+0

무엇이 잘못되었는지 설명해 주시겠습니까? – Coder

답변

0

는 정적 방법이다

public static <E> void swap(List<E> list, int i, int j) { 
    E e = list.get(i); 
    list.set(i, list.get(j)); 
    list.set(j, e); 
} 

this question을 참조하십시오. 클래스를 사용하여이를 수행하려면 논리가 동일하지만 메소드 서명이 public void swap(int i, int j)이되어야합니다.

+0

기본적으로 Collections.swap 메서드입니다. 나는 방법을 바꿀 수 없다. –

+0

public void swap (int I, int j); 내가 사용해야하는 방법입니다, 나는 다른 방법을 사용할 수 없습니다. 게시 한 메서드를 사용할 수 있었다면 완벽하게 작동합니다. –

관련 문제