프로그래밍을 시작하는 단계에 있으며 두 개의 목록을 결합하여 하나의 목록을 만들어 번호순으로 나열합니다. 문제가되는 부분은 코드를 반복 할 수 있도록하는 단계입니다. 즉, 원본 목록의 모든 숫자를 조합하여 최종 목록을 완성하기 위해 전체 원본 루프를 실행하도록 단계를 반복합니다. 루프에 대한 지침을 주시면 감사하겠습니다. 고맙습니다.내 목록이 반복되어 전체 목록이 결합되도록합니다.
import inClass.list.EmptyListException;
import inClass.list.List;
public class InitialLists {
public static void main(String[] args) {
List<Integer> intObject1 = new List<Integer>();{
intObject1.insertAtFront(25);
intObject1.insertAtFront(19);
intObject1.insertAtFront(3);
intObject1.print();}
List<Integer> intObject2 = new List<Integer>();{
intObject2.insertAtFront(120);
intObject2.insertAtFront(1);
intObject2.print();}
List<Integer> combinedList = new List<Integer>();
int object1 = intObject1.removeFromBack();
int object2 = intObject2.removeFromBack();
while(intObject1.removeFromBack() != null && intObject2.removeFromBack() != null){
try {
{
if (intObject1.removeFromBack() > intObject2.removeFromBack()) {
combinedList.insertAtFront(object2);
intObject1.insertAtBack(object1);
}
else if (intObject2.removeFromBack() < intObject1.removeFromBack()) {
combinedList.insertAtFront(object1);
intObject2.insertAtBack(object2);
}
else if (intObject1.removeFromBack() == intObject2.removeFromBack()) {
combinedList.insertAtFront(object1);
}
}
combinedList.print();
object1 = intObject1.removeFromBack();
object2 = intObject2.removeFromBack();
} // end try
catch (EmptyListException emptyListException) {
emptyListException.printStackTrace();
} // end catch
} //end while
} // end main
}// end class
'List '가 인터페이스이기 때문에'new List()'를 사용할 수 없다고 생각합니다. 불필요한'{}'블록도 있습니다. 정렬되지 않은 방식으로 목록을 결합한 다음 최종 목록을 정렬하는 것을 고려 했습니까? – DNA
@DNA 그것은 사용자 정의'List'를 사용하고 있습니다.'.insertAtFront()'와'.removeFromBack()'메소드를 주목하십시오. – NullUserException
@kassie [mergesort] (http://en.wikipedia.org/wiki/Merge_sort)에서 아이디어를 얻을 수 있습니다. – NullUserException