【发布时间】:2020-08-24 11:03:01
【问题描述】:
我有一个由对象组成的 ArrayList。在这些对象中,我有一个名为“级别”的字段。
我也有玩家的水平。我正在尝试检索最接近玩家级别的 ArrayList 中的元素,但前提是玩家级别高于对象中的“级别”。
例如:
static {
foodSources = new ArrayList<FoodSource>();
foodSources.add(new FoodSource("foodSource1", 10));
foodSources.add(new FoodSource("foodSource2", 10));
foodSources.add(new FoodSource("foodSource3", 10));
foodSources.add(new FoodSource("foodSource4", 12));
foodSources.add(new FoodSource("foodSource5", 15));
foodSources.add(new FoodSource("foodSource6", 15));
foodSources.add(new FoodSource("foodSource7", 15));
foodSources.add(new FoodSource("foodSource8", 20));
foodSources.add(new FoodSource("foodSource9", 25));
}
如果玩家等级为 10,它将检索 foodSource1、foodSource2 和 foodSource3。
如果玩家等级为 11,它将检索 foodSource1、foodSource2 和 foodSource3。
但是,如果玩家等级为 12,它只会检索 foodSource 4。
我正在尝试找到一种有效的方法来执行此操作。我考虑过对 ArrayList 进行二进制搜索,但据我所知,你只能用它检索一个元素。
大约一个半月前我才重新开始编程,所以我不确定我可以在这里使用 Java 中的哪些功能。
谢谢。
【问题讨论】: