我有一个包含对象的 ArrayList,这些对象有多个值。
现在我想根据对象中的 int 值将此列表拆分为多个列表。
例如,如果:
2 对象有一个值为 1 的 int
3 对象有一个值为 3 的 int
所以 arraylist 有 5 个对象,我想得到:
2 个数组列表,1 个包含第一个对象 en 1 个包含第二个对象(如果有更多不同的 int 值,则更多)
对不起,如果它令人困惑..
最佳答案
首先像这样创建一个缓存:Map<Integer, List<YourObjectType>>
然后循环遍历您的每个对象,并使用您的整数访问上面的 Map
, 如果值为 null,则创建一个新的 List
并将其放入 Map
,然后将您的对象添加到 List
.
最终结果将是一个包含两个条目的映射,每个条目都包含一个条目列表,其中以您的对象中的整数作为鉴别器。
代码如下:
Map<Integer, List<YourObject>> cache = new HashMap<Integer, List<YourObject>>();
for (YourObject yo : yourObjectListArrayWhatever) {
List<YourObject> list = cache.get(yo.getIntegerValue());
if (list == null) {
list = new ArrayList<YourObject>();
cache.put(yo.getIntegerValue(), list);
}
list.add(yo);
}
关于java - 根据 Object 中的 int 值将 ArrayList<Object> 拆分为多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15547444/