android - 来自字符串的随机数组android
问题描述
我想将我的数组的数字随机分配给键 key0、key1 等。
我正在使用此代码,在前两行中我有我的数组,并使用 setText 分配数字。但我无法让它工作..
String[] shuffledKeys = {"0","1","2","3","4","5","6","7","8","9"};
Random random = new Random(); // or create a static random field...
String randString = shuffledKeys[random.nextInt(shuffledKeys.length)];
key0.setText(shuffledKeys.get(0));
key1.setText(shuffledKeys.get(0));
key2.setText(shuffledKeys.get(0));
key3.setText(shuffledKeys.get(0));
key4.setText(shuffledKeys.get(0));
key5.setText(shuffledKeys.get(0));
key6.setText(shuffledKeys.get(0));
key7.setText(shuffledKeys.get(9));
key8.setText(shuffledKeys.get(8));
key9.setText(shuffledKeys.get(9));
解决方案
String[] keys = {"0","1","2","3","4","5","6","7","8","9"};
Set<String> addedKeys = new HashSet<String>();
List<String> shuffledKeys = new ArrayList<String>();
Random random = new Random();
while (shuffledKeys.size() < keys.length) {
int index = Math.abs(random.nextInt() % keys.length);
if (!addedKeys.contains(keys[index])) {
addedKeys.add(keys[index]);
shuffledKeys.add(keys[index]);
}
}
/// Shuffled keys should now actually be "shuffled"
key0.setText(shuffledKeys.get(0));
key1.setText(shuffledKeys.get(1));
key2.setText(shuffledKeys.get(2));
key3.setText(shuffledKeys.get(3));
key4.setText(shuffledKeys.get(4));
key5.setText(shuffledKeys.get(5));
key6.setText(shuffledKeys.get(6));
key7.setText(shuffledKeys.get(7));
key8.setText(shuffledKeys.get(8));
key9.setText(shuffledKeys.get(9));
推荐阅读
- r - RShiny中renderDataTable的求和列,并将结果存储在数据框中供以后使用
- mysql - SELECT 列表不在 GROUP BY 子句中
- magic-draw - 在magicdraw中显示操作的方向类型
- javascript - TypeError:data.map 不是 JavaScript 中的函数
- sql - SQL 查询:对值求和
- javascript - 仅在我的 Vue.js 路由器的某些页面上滚动到页面顶部 - 在其他页面上保持滚动位置相同
- python - 谁能告诉我为什么我一直遇到这个错误 - [TypeError: __init__() got an unexpected keyword argument 'strict']
- javascript - 将 javascript 字典传递给控制器上的 ASP.NET MVC 操作
- unity3d - 游戏对象在整个运动过程中都在振动
- java - Java 允许缩小引用转换