我已经实现了一个在Linkedlist中存储集合的程序。例如,当我打印出链表时,我得到的是[1,2,3,4,5]。
我想要的是将方括号改为大括号,例如'{‘& '}’
我不能使用字符串操作,所以我必须覆盖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));
}
}
}
}发布于 2013-01-25 06:18:15
输出完全依赖于LinkedList (和除地图之外的大多数其他集合)继承的AbstractCollection.toString()的实现。这个实现看起来像这样(稍微简化了一点):
public String toString() {
Iterator<E> it = iterator();
if (! it.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next();
sb.append(e);
if (! it.hasNext())
return sb.append(']').toString();
sb.append(", ");
}
}以此为指导,您可以很直接地创建不包含方括号的自己的实现。您可以创建自己的集合来覆盖toString(),或者使用一个单独的实用方法将您的LinkedList input作为参数(在这种情况下,显然可以将iterator()替换为input.iterator())。
发布于 2013-01-25 06:20:09
您还可以创建一个帮助器方法,该方法将List对象作为属性,并返回包含此列表的串联内容的String。这样继承就是多余的。
发布于 2013-01-25 06:15:55
创建一个extends LinkedList类并包含如下所示的方法:
@Override
public String toString() {
}该方法可以像这样访问列表项:
Iterator<Integer> it = this.iterator();
while(it.hasNext()) {
Integer nextItem = it.next();
}https://stackoverflow.com/questions/14511767
复制相似问题