在arrayList中查找特定对象

ulq*_*rra 0 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

解决方案正在做

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

但由于明显的性能原因,它不可接受.有什么建议可以更好地做到这一点吗?

Lui*_*oza 6

使用a Map<String, City>代替List<City>,使用City#name地图中的键作为键.如果导航顺序无关紧要,则使用HashMap实现,否则使用LinkedHashMapTreeMap.