从数据库获取最后一个索引的重复数据而不是Java中的所有数据

时间:2015-07-20 17:20:30

标签: java mysql servlets jdbc vector

java.util.Vector v = new Vector();
Model model = new Model();
v = model.getData();
for (int i = 0; i < v.size(); i++)
{
    model = (Model) v.elementAt(i);
    System.out.println(model.getName());
}

我正在使用此代码来获取数据。首先,我在vector对象中设置数据,然后尝试通过for循环检索所有数据。但是,我的代码不起作用 - 我收到以下错误消息:

Getting output like this.

我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您不想获取重复条目,请使用java.util.Set。您必须记住在equals类中覆盖hashcodeModel方法。

import java.util.*;

Model model = new Model();
Set s = new HashSet(model.getData());

for (Object model : s) {
    if (model instanceOf Model) {
        System.out.println(((Model)model.getName()));
    }
}

为了获得更好的性能,您应该使用通用版本的集合类。因此,如果我们假设您的方法Model.getData()具有以下签名:

public Collection<Model> getData();

上述代码可以用这种方式编写:

import java.util.*;

Model model = new Model();
Set<Model> s = new HashSet<Model>(model.getData());

for (Model model : s) {
    System.out.println(model.getName());
}