【发布时间】:2011-04-04 21:55:15
【问题描述】:
我正在尝试创建一个 android 应用程序,它将在给定范围内生成随机的一系列值(在本例中为整数)(但它们之间 NOT 相等)并以简单的方式显示它们文本视图
假设我们有范围R = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
每按一次按钮“生成”我想随机生成5个不同的结果
每个“生成”的示例:
- 4、9、2、12、10
- 5、1、6、8、13
- 10、4、6、8、2
- 等等……
编辑(现在可以使用)感谢所有帮助!
public class random extends Activity {
static final Integer[] data = new Integer[] {
1, 2, 3, 4, 5, 6, 7, 8
};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
Random r = new Random();
Set<Integer> mySet = new HashSet<Integer>();
while (mySet.size() < 5) {
int idx = r.nextInt(data.length);
mySet.add(data[idx]);
}
String text = "";
for (Integer i : mySet) {
text = text + i + ", ";
}
TextView Numbers = (TextView)findViewById(R.id.shownumbers);
Numbers.setText(text);
}
}
【问题讨论】:
-
在 Clojure 中:(take 5 (shuffle (range 1 14))) 现在将其与此处提出的 Java 解决方案进行比较;) 太糟糕了 Clojure 目前在 Android 上非常慢。