带有循环对象的Java ArrayList

标签 java arraylist

当在循环中声明时,如何知道 ArrayList 中对象的名称? 我可以通过索引获取它,但我不知道它的名称来定位/知道它是否在 ArrayList 中。

import java.util.ArrayList;

public class Teste {

    public static void main(String[] args) {
        ArrayList<UserClasss> userList = new ArrayList<UserClasss>();

        for (int i = 0; i < 5; i++) {
            UserClasss user = new UserClasss();
            user.setName("name"+i);
            user.setAge((int)(Math.random()*80));
            userList.add(user);
        }
        for (UserClasss forUser:userList){
            System.out.println(forUser.getName());
            System.out.println(forUser.getAge());
        }


        //how can i know if contains it here?
        //userList.contains(user);
        //and how do i know the index of it?
        //userList.indexOf(user);


    }
}

class UserClasss {

    private String name;
    private int age;

    public void setName(String s){
        name = s;
    }
    public String getName(){
        return name;
    }
    public void setAge(int i){
        age = i;
    }
    public int getAge(){
        return age;
    }
}

最佳答案

要在列表中找到您的用户类,您必须覆盖 UserClasss 类中的 equals 和 hash code 方法。

通过这样做,contains() 和 indexOf() 方法将能够在 Collection 中找到它们。

附言Eclipse 和其他一些 IDE 可以为您生成这些方法。

要添加的代码(由 eclipse 生成):

@Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + age;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        UserClasss other = (UserClasss) obj;
        if (age != other.age)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
    }

关于带有循环对象的Java ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203305/

相关文章:

java - 如何在 android phonegap 应用程序中获取 webview url?

java - 我应该如何设置 Firebase 实时数据库中键值类型的 getter 和 setter?

java - Shiro Authorization 使用远程角色填充授权

java - 在 Activity 之间发送数据 Intent 错误

java - 插入到 ArrayList 的中间是移动对象还是引用?

java - 如何迭代对象列表,传递给方法然后将返回值存储在数组列表中?

java - 在 java 中维护唯一数组的 ArrayList

java - 如何从哈希表中检索 ArrayList<String> 的键?

JavaFX - 手动将图像添加到 GridPane

java - Android studio中的文件路径