다음과 같은 문제가 있습니다. Entry라는 개체가 포함 된 연결된 목록 또는 위치 목록이 있습니다. 각 항목에는 키와 값 쌍이 저장됩니다. 그 목록에서 키를 가져 오기 위해 다른 연결된 목록을 만들고 싶습니다. 나는 그렇게하는 방법을 생각해 냈습니다. 그러나 키 목록을 인쇄 할 때 몇 가지 이유 때문에 그들이 추가 한 순서가 표시되지 않습니다. printKeySet는 키 집합의 결과를 소요() 전체 키 목록을 인쇄하는 동안,다른 연결된 목록에서 키를 포함하는 링크 된 목록 반환
public PositionalList1<K> keySet() //I prnted position by position while adding and it worked. I also tested addAfter with positionalList1 class and it worked
{
PositionInterface<Entry> iterator = map.first(); //gets first position in the Entry List
PositionInterface<K> first = keyList.addFirst((K)iterator.getData().getKey()); //adds to list containing just keys the key from the Entry list(getData is just a method that returns whatever object is stored at the node, in this case a Entry Object)
iterator = map.after(iterator); //go to next node in Entry list
for(int i=0;i<size-1;i++) //get rest of keys
{
PositionInterface<K> p = keyList.addAfter(first,(K)iterator.getData().getKey());
iterator = map.after(iterator);
}
return keyList;
}
public void printKeySet(PositionalList1 list) //print key list
{
PositionInterface p = list.first();
for(int i=0; i<list.size();i++)
{
System.out.println("Key : " + p.getData());
p = list.after(p);
}
}
키 집합() 메서드는 키가 포함 된 목록을 반환 : 나는 다음과 같은 두 가지 방법이있다. 이것은 등의 정렬 된 목록 (1, C) (2, A) ... 결과
OrderedMapL<Integer,String> map2 = new OrderedMapL<Integer,String>();
map2.put(2,"A");//adds (2,A)
map2.put(5,"B");//adds(5,B)
map2.put(1,"C");//adds(1,C)
map2.put(4,"D");//adds(4,D)
map2.put(3,"E");//adds(3,E)
map2.remove(2); //removes (2,A)
및 항목 자체가 순서대로 글씨 : 나는 다음과 같은 주요 프로그램을 사용하여이 문제를 테스트했습니다. 키가 순서대로 인쇄하는 몇 가지 이유를 들어
PositionalList1<Integer> keyList = map2.keySet();
map2.printKeySet(keyList);
: 다음 호출 할 때 문제가 발생합니다 1,5,4,3 대신 보닐 내가 왜 아무 생각이 없습니다. 어떤 도움을 주시면 감사하겠습니다.
모든 클래스를. 우리는 그들이하는 일과 그들이하는 일을 전혀 모릅니다. 왜 표준 Java 콜렉션을 사용하지 않습니까? –
이것은 내 자신의 추상 데이터 유형을 작성할 것으로 예상되는 데이터 구조 클래스 용입니다. 노드리스트 자체와 관련된 모든 보조 기능이 작동하고 테스트되었습니다. addAfter()는 매개 변수화 된 위치 다음에 위치를 추가하기 만합니다. keySet()에서 위치 1을 1 씩 인쇄했을 때 위치가 올바르게 추가 된 것처럼 극단적으로 이상합니다. 그러나 printKeySet()에서는이 순서가 표현되지 않습니다. – JmanxC
또한 after()는 paramatezied 뒤에 위치를 반환하는 또 다른 nodelist 함수입니다. 함수의 이름은 그것이 무엇을하는지 거의 알려줍니다. – JmanxC