本帖最后由 吴小铁你好 于 2012-7-10 09:21 编辑
- package com.day03;
- import java.util.Arrays;
- import java.util.HashSet;
- import java.util.Random;
- import java.util.Set;
- public class RandomTest {
- /**
- * 随机生成密码矩阵
- */
- public static void main(String[] args) {
- int k=0;
- Random r = new Random();
- Set<String> s = new HashSet<String>();
- <FONT style="BACKGROUND-COLOR: red"> /*
- * 需求:问题在下面,我想生成一个9*9的随机密码矩阵。
- * 当我用for循环时,数组角标越界,用while时没问题。而当我把"i<81"变为"i<1000"时又可以输出
- * 这个数组。
- * 当我在for循环中加入System.out.println(s.size());时看机会大小,发现i<81时机会大小为60,i<100
- * 集合大小为100.这是为什么呢???
- *还有集合内存是怎样分配的啊,求解???
- *
- </FONT> * */
- for (int i = 0; i < 81; i++) {
- String str = "" + r.nextInt(10) + r.nextInt(10);
- s.add(str);
- //System.out.println(s.size());
- }
- /*while(s.size()<81){
- String str = "" + r.nextInt(10) + r.nextInt(10);
- s.add(str);
- }*/
- Object[] arr= s.toArray();
-
- String [][]pass=new String[9][9];
- for(int x=0;x<9;x++){
- for(int y=0;y<9;y++){
- pass[x][y]=(String) arr[k];
- k++;
- }
- }
-
- for(int i=0;i<pass.length;i++){
- System.out.println(Arrays.toString(pass[i]));
- }
- }
- }
- /*
- * 需求:问题在下面,我想生成一个9*9的随机密码矩阵。
- * 当我用for循环时,数组角标越界,用while时没问题。而当我把"i<81"变为"i<1000"时又可以输出
- * 这个数组。
- * 当我在for循环中加入System.out.println(s.size());时看机会大小,发现i<81时机会大小为60,i<100
- * 集合大小为100.这是为什么呢???
- *还有集合内存是怎样分配的啊,求解???
- *
- * */
复制代码 |
|