Ale*_*ien 1 java arrays generics collections map
我想转换entrySet()的Map<String, Statistic>一个array(或ArrayList中).
我试过了:
Map.Entry<String, Statistic>[] entries = statisticMap.entrySet().toArray(new Map.Entry<String, Statistic>[0]);
Run Code Online (Sandbox Code Playgroud)
但这会给编译器错误:"无法创建Map.Entry的通用数组"
即使这不起作用,也有同样的错误:
Map.Entry<String, Statistic>[] entries = new Map.Entry<String, Statistic>[1];
Run Code Online (Sandbox Code Playgroud)
但这有效:
Map.Entry[] entries = new Map.Entry[1];
Run Code Online (Sandbox Code Playgroud)
任何想法如何创建这样的数组或列表?
如果您愿意获取列表而不是数组,则可以执行以下操作:
List<Map.Entry<String, Statistic>> list = new ArrayList<>(map.entrySet());
Run Code Online (Sandbox Code Playgroud)
使用列表可以避免创建泛型数组的问题,并且它还允许您使用Java 7的"菱形运算符"来避免重复类型参数.