Java 使用ArrayList#contains()获取不同的值无效

Java 使用ArrayList#contains()获取不同的值无效,java,Java,我有一个JComboBox调用cmb\u user\u id,我从数据库中获取所有用户id,并将其保存在一个名为借用\u data的对象数组中,但其中有一些重复的数据,因此我使用包含()方法对其进行过滤,下面是我的代码: ArrayList<String> al_id = new ArrayList<>(); cmb_user_id.addItem("Select One"); for(int i = 0; i < borrow_data.length; ++i)

我有一个JComboBox调用
cmb\u user\u id
,我从数据库中获取所有用户id,并将其保存在一个名为
借用\u data
的对象数组中,但其中有一些重复的数据,因此我使用
包含()
方法对其进行过滤,下面是我的代码:

ArrayList<String> al_id = new ArrayList<>();
cmb_user_id.addItem("Select One");
for(int i = 0; i < borrow_data.length; ++i)
{
    if(!al_id.contains(borrow_data[i].getUser().getId()));
    {
        cmb_user_id.addItem(borrow_data[i].getUser().getId());
        al_id.add(borrow_data[i].getUser().getId());
        System.out.println("Content: " + borrow_data[i].getUser().getId());
    }
}
ArrayList al_id=new ArrayList();
cmb用户id添加项(“选择一项”);
对于(int i=0;i
但毕竟,所有数据仍然保存在
cmb\u user\u id
中,包括重复的数据,我的过滤器根本不起作用

if(!al_id.contains(borrow_data[i].getUser().getId()));
有一个
,这意味着将始终执行以下
{…}


有一个
,这意味着下面的
{…}
将始终执行。

很难理解有这么多我们不知道的变量发生了什么。请将此重写为一个-最好同时遵循Java命名约定。您的代码看起来不错,问题可能在其他地方-您应该遵循Jon Skeet的建议。我想我看到了错误/打字错误,请查看行末的
if(!al_id.contains(borrow_data[I].getUser().getId())否,您几乎没有解释任何内容-并且您没有显示示例输入和实际与预期输出。基本上,你真的需要提供一个-在这一点上,我们将能够帮助你。@Jornverne:好的捕获。我猜想OP在将代码转换成完整的示例时会发现这一点,这是完成该过程的好处之一。投票结束就像一个打字错误…很难理解这么多我们不知道的变量到底发生了什么。请将此重写为一个-最好同时遵循Java命名约定。您的代码看起来不错,问题可能在其他地方-您应该遵循Jon Skeet的建议。我想我看到了错误/打字错误,请查看行末的
if(!al_id.contains(borrow_data[I].getUser().getId())否,您几乎没有解释任何内容-并且您没有显示示例输入和实际与预期输出。基本上,你真的需要提供一个-在这一点上,我们将能够帮助你。@Jornverne:好的捕获。我猜想OP在将代码转换成完整的示例时会发现这一点,这是完成该过程的好处之一。投票以打字错误结束。。。