将哈希集打印到屏幕

时间:2015-08-20 18:49:02

标签: java hashset

我正在尝试打印一个从数据库中获取记录的哈希集,这些记录当前存储在两个单独的ArrayLists中。当我尝试打印出HashSet时,显示以下错误。

这是你的HashSet [nyu.Sorting@378bf509,nyu.Sorting @ 7b23ec81,nyu.Sorting @ 15aeb7ab,nyu.Sorting @ 27d6c5e0,nyu.Sorting @ 7ef20235,nyu.Sorting @ 4f3f5b24,nyu.Sorting @ 6acbcfc0, nyu.Sorting@2d98a335,nyu.Sorting @ 5fd0d5ae,nyu.Sorting @ 16b98e56]

这是我的代码:

public static HashSet<Sorting> t() {
    Sorting s = new Sorting();





    int TimeNeededOne = 75;
    int TimeNeededTwo = 75;

    int assignedTimeOne = 0;
    int assignedTimeTwo = 0;


    HashSet<Sorting> c = new HashSet<Sorting>();


        for(int i=0; i<=i1.size()-1; i++)
        {
            if((assignedTimeOne < TimeNeededOne) && !(assignedTimeOne+ i1.get(i).getLengthMins() > offensiveTimeInMins) )
            {

                c.add(i1.get(i));
                assignedTimeOne += i1.get(i).getLengthMins();

            }
        }




        for(int i=0; i<=i2.size()-1; i++)
        {
            if((assignedTimeTwo < TimeNeededTwo) && !(assignedTimeTwo + i2.get(i).getLengthMins() > TimeNeededTwo) )
            {
                c.add(i2.get(i));
                assignedTimeTwo += i2.get(i).getLengthMins();



            }
        }



        System.out.println("Training programme :" + c.size());
        System.out.println("This is your training programme" + c.toString());

    return c;
}

c.size确认有十个条目是正确的,但是来自hashset的记录格式显然存在问题。对此问题的任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:2)

执行此操作的一种方法是覆盖toString()类的Sorting方法以打印其内容:

public class Sorting {

    ...

    @Override
    public String toString() {
        // Return a String that represents this object
        return "...";
    }
}

答案 1 :(得分:1)

您需要在toString()类中覆盖Sorting方法,例如:

class Sorting {

    ...

    @Override
    public String toString() {
        // a string representation of Sorting object 
    }
}

java.util.Iterator遍历整个集合,每个元素调用toString()方法。数据记录在java.lang.StringBuilder中,最后返回其字符串表示。