Java 遍历实例的ArrayList';s变量
我想知道如何遍历下面的ArraylistJava 遍历实例的ArrayList';s变量,java,Java,我想知道如何遍历下面的Arraylist public class FruitHandler { private ArrayList<Fruits> fruit; private ArrayList<Integer> fruitUID= new ArrayList<>(); public static FruitHandler getInstance() { return instance; }
public class FruitHandler {
private ArrayList<Fruits> fruit;
private ArrayList<Integer> fruitUID= new ArrayList<>();
public static FruitHandler getInstance() {
return instance;
}
public void addFruit(Fruit fruit) {
this.fruitUID.add(fruit.getfruitUID());
this.fruit.add(fruit);
}
}
公共类处理程序{
私家水果;
private ArrayList fruitUID=new ArrayList();
公共静态处理程序getInstance(){
返回实例;
}
公众水果(水果){
this.fruitUID.add(fruit.getfruitUID());
这个。水果。添加(水果);
}
}
我要做的是遍历水果UID并返回存储在ArrayList fruit
中的水果类的实例,该实例与我给定的UID匹配
例如,我有一个
fruitUID=10
,我希望有一个存储在ArrayList fruit
中的fruit类实例的引用,该类的fruitUID=10
如果要检索给定fruitUID的fruit
实例,那么您可能需要一个映射
您还可以只拥有一个Fruit
实例的列表,并使用流和过滤器仅查找具有指定fruitUID的单个实例
如果绝对必须使用两个列表,则需要找到指定水果UID的索引,并从同一索引处的另一个列表中提取水果
编辑:如果要使用地图:
private Map<Integer, Fruits> fruits = new HashMap<>();
public void addFruit(Fruit fruit) {
fruits.put(fruit.getfruitUID(), fruit);
}
public Fruit findFruit(Integer fruitUID) {
return fruits.get(fruitUID);
}
private-Map-fruits=new-HashMap();
公众水果(水果){
水果.put(水果.getfruitUID(),水果);
}
公共水果findFruit(整数水果UID){
返回水果。获取(果uid);
}
由杰森提出的解决方案会使你的问题变得更容易,但是如果你着急并考虑使用快速解决方案,你可以有以下代码(在性能方面不太好)
public class FruitHandler {
private ArrayList<Fruits> fruit;
private ArrayList<Integer> fruitUID= new ArrayList<>();
public static FruitHandler getInstance() {
return instance;
}
public void addFruit(Fruit fruit) {
this.fruitUID.add(fruit.getfruitUID());
this.fruit.add(fruit);
}
public Fruit findFruitByFruitUID(Integer fruitUID){
for(Fruit fr: fruit){
if(fr.getfruitUID()==fruitUID){
return fr;
}
}
return null;
}
}
公共类处理程序{
私家水果;
private ArrayList fruitUID=new ArrayList();
公共静态处理程序getInstance(){
返回实例;
}
公众水果(水果){
this.fruitUID.add(fruit.getfruitUID());
这个。水果。添加(水果);
}
公共水果findFruitByFruitUID(整数水果UID){
用于(水果fr:水果){
if(fr.getfruitUID()==fruitUID){
返回fr;
}
}
返回null;
}
}
我觉得我想得太多了,如何从外部类迭代水果映射?或者不需要迭代?我只是调用findFruit,仅此而已。@Emily,这就是映射的优点。不需要迭代。它会让你直接找到你要找的水果。-我强烈建议你研究一下数据结构,尤其是哈希映射。它们是计算的基石之一……这是一个优化数据查找的概念,我们每天都在使用它。