我已經實現了一個存儲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',第一個指向了源代碼。但第二個是Sun的源,並有可點擊的鏈接來查找父類。我發現你可以在這裏使用的源代碼:[AbstractCollection.java](http://www.docjar.com/html/api/java/util/AbstractCollection.java.html) –
你不能使用字符串操作的原因是什麼? –