the*_*tna 2 java collections shuffle
我想在HashMap中随机播放值.我有以下类型的HashMap
Map<Integer,ArrayList<String> > trainDataSet = new HashMap<Integer, ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)
我想在地图中改变值.我该怎么办?
以下是我的尝试:
collections.shuffle(trainDataSet.values());
Run Code Online (Sandbox Code Playgroud)
出了错误:
Values cannot be cast to java.util.List
Run Code Online (Sandbox Code Playgroud)
是的,这是有道理的,因为我的值是在Arraylist而不是List中.是否有可能改组arraylist集合?
编辑
如果我有以下订单::
key1 [aa,bb,cd]
key2 [xx,xy,sfr]
Run Code Online (Sandbox Code Playgroud)
变成类似的东西
key1 [xx,xy,sfr]
key2 [aa,bb,cd]
Run Code Online (Sandbox Code Playgroud)
Mar*_*nik 12
您实际上想要随机重新关联键和值.这是一个如何实现的例子:
final Map<String, Object> x = new HashMap<String, Object>();
x.put("x", 1); x.put("y", 2); x.put("z", 3); x.put("w", 4);
System.out.println(x);
final List<Object> vs = new ArrayList<Object>(x.values());
Collections.shuffle(vs);
System.out.println(vs);
final Iterator<Object> vIter = vs.iterator();
for (String k : x.keySet()) x.put(k, vIter.next());
System.out.println(x);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5364 次 |
| 最近记录: |