java - 在 arrayList 中查找特定对象

标签 java list object

我有一个很大的 arrayList,其中填充了一个文件(超过 50000 行),我需要在这个列表中找到一个特定的对象

我的对象类

public class City{

    public City() {
        super();

    }
    private String name;
    private String department;


    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.nom = name;
    }
    public String getDepartment() {
        return deparement;
    }
    public void setDepartment(String department) {
        this.department = department;
    }

    @Override
    public String toString() {

        return name;
    }
}

解决方案正在做

List<City> listCity = ParseFile.parseCityFile(this);
String item = textView.getText().toString();
                for (City c : listCity ) {
                    if(c.getName().equals(item))                                    
                        // stuff here
                }

但由于明显的性能原因,它是不可接收的。 对于更好的方法有什么建议吗?

最佳答案

使用 Map<String, City> 而不是List<City> ,使用City#name作为 map 中的关键。如果导航顺序不重要,则使用 HashMap作为实现,否则使用 LinkedHashMapTreeMap .

关于java - 在 arrayList 中查找特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25083543/

相关文章:

Java对象: Method doesn't print as it should

java - 对象可以继承字符串表示吗?

java - Java Float 和 Double 数据类型中的上溢和下溢

java - JAVA中的类加载

java - 为什么会延迟生成 Java String 哈希码?

python - 为什么这个列表会改变值(value)?

java - 将 JSON 响应转换为 List<T>

python - 按字母顺序排列 Python 中的多行值列表?

java - 验证值并引发异常

javascript - 对象内的多维数组