Linkedlist
내에 세트를 저장하는 프로그램을 구현했습니다. 연결된 목록을 인쇄 할 때 예를 들어 [1,2,3,4,5]
이 표시됩니다.LinkedList toString()
내가 원하는 것은 대괄호를 중괄호로 변경하는 것입니다. '{'& '}'
문자열 조작을 사용할 수 없으므로 toString
메서드를 재정의해야합니다.
나는 서브 클래스를 만들어야한다는 사실 외에도 이것을하는 방법에 관해서는 우둔한 입장이다. 그것은 나를 괴롭히는 방법 자체입니다.
public class outputSets
{
@SuppressWarnings({ "unchecked", "rawtypes", "unused" })
public static void main(String args[])
{
LinkedList x0 = new LinkedList();
LinkedList x1 = new LinkedList();
LinkedList x2 = new LinkedList();
LinkedList x3 = new LinkedList();
LinkedList x4 = new LinkedList();
LinkedList x5 = new LinkedList();
LinkedList x6 = new LinkedList();
x0.add(new Integer(8));
for(int i=1; i<8; i++)
{
x1.add(new Integer(i));
}
x1.add((x0.getFirst()));
x2.addAll(x1);
x2.add(new Pair(1, x1));
x3.add(new Pair(x2,x1));
//x4.addAll(tree.union(x3, x2));
//x5.add(tree.difference(x4, x1));
//x6.add(tree.intersection(x4, x1));
/*
Iterator i0 = x0.listIterator();
Iterator i1 = x0.listIterator();
Iterator i2 = x0.listIterator();
Iterator i3 = x0.listIterator();
Iterator i4 = x0.listIterator();
Iterator i5 = x0.listIterator();
Iterator i6 = x0.listIterator();
*/
System.out.print(x0.getFirst());
System.out.println();
SetArray(x1);
System.out.println();
SetArray(x2);
System.out.println();
System.out.println();
}
@SuppressWarnings("rawtypes")
private static void SetArray(LinkedList x0)
{
for(int index=0; index < x0.size() ; index++)
{
if (index == 0)
{
System.out.print(x0.get(index));
}
else
{
System.out.print(", " +
"" + x0.get(index));
}
}
}
}
링크 된 목록은 새로운 요소 추가, 요소 삭제 및 포함 포함 확인이 모두 선형 시간 작업이기 때문에 세트의 구현이 매우 좋지 않습니다. 어쩌면 해시 테이블이나 트리를 대신 사용해야합니다 (또는 해시 테이블과 트리를 기반으로하는 Java의 기본 제공 구현 중 하나를 사용하십시오). –
나는 'java linkedlist source'를 찾았고 첫 번째 것은 소스를 가리킨다. 하지만 두 번째 것은 썬 소스 였고 클릭 할 수있는 링크를 통해 부모 클래스를 찾을 수있었습니다. 여기에서 사용할 수있는 소스를 찾았습니다 : [AbstractCollection.java] (http://www.docjar.com/html/api/java/util/AbstractCollection.java.html) –
문자열 조작을 사용할 수없는 이유는 무엇입니까? ? –