gpt4 book ai didi

java - 从 LinkedHashMap 中将映射值提取为 ArrayList

转载 作者:行者123 更新时间:2023-12-02 02:37:11 26 4
gpt4 key购买 nike

我创建了一个简单的类MapExtension适应将 4 个值传递给 ListView 适配器并使用 LinkedHashmap添加MapExtension的ArrayList。

public class MapExtension {
private String studname;
private String studnumber;
private String schedule;


public MapExtension(String studname, String studnumber, String schedule) {
this.studname = studname;
this.studnumber= studnumber;
this.schedule= schedule;
}

public String getStudname () {
return studname;
}

public String getStudnumber() {
return studnumber;
}

public String getSchedule() {
return schedule;
}

}

每当我尝试提取ArrayList<MapExtension>时从 LinkedHashMap 返回 Collections ,我从不同的试验中得到这些错误(在评论中):

ListViewAdapter(Context context, LinkedHashMap<Integer, ArrayList<MapExtension>> mValues) {
super(context, R.layout.listview_layout, mValues.keySet().toArray());
this.context = context;

//java.lang.ClassCastException: java.util.HashMap$Values
//cannot be cast to java.util.ArrayList
ArrayList mValues = (ArrayList) mValues.values();

// says incompatible as it will become ArrayList<ArrayList<MapExtension>>
ArrayList<MapExtension> mValues = new ArrayList<>(mValues.values());
}

如何成功检索它并放入其兼容类型?

提前致谢。

最佳答案

每个valuemValuesArrayList<MapExtensions> ,和values返回 Collection<V> ,所以你应该能够做到..

Collection<ArrayList<MapExtensions>> localVar = mValues.values();

如果您想展平嵌套数组,可以查看流的 flatMap() 方法。 Here is one person's blog on that 。顺便说一句,Kotlin 集合有一个适用于集合的 flatMap() 扩展方法。

关于java - 从 LinkedHashMap 中将映射值提取为 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46126431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com