java Arrays

来源:互联网 发布:4m宽带能看网络电视吗 编辑:程序博客网 时间:2024/05/22 06:39

import java.util.*;
import javax.swing.JOptionPane;
public class UseArrays {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String s=JOptionPane.showInputDialog("输入小与5的整数");//输入对话框
  int k=Integer.parseInt(s);
  //调用方法得到36选k的结果(保存在向量中)并转化为Object数组
  Object[]first=selectKFrom36(k).toArray();
  Arrays.sort(first);//升序排列
  System.out.println(Arrays.toString(first));//打印数组
  System.out.println("正生成36选"+k+"的下一个与上面一样的结果:");
  Object[]next=null;//存放下一个36选k的结果
  boolean bool=false;
  int times=1;//存放次数
  while(!bool)
  {
   next=selectKFrom36(k).toArray();//随机生成下一个36选k的结果
   times++;
   Arrays.sort(next);
   bool=Arrays.equals(first, next);
  }
  System.out.println(Arrays.toString(next));
  System.out.println(times+"次后,两组随机的36选"+k+"正好一样");
   
 }
 public static Vector selectKFrom36(int k)
 {
  Random rd=new Random();
  Vector allNum=new Vector();
  Vector kNum=new Vector();
  for(int i=0;i<36;i++)
  {
   allNum.add(new Integer(i+1));//向向量allNum中依次添加1——36个整数
      
  }
  int x;
  for(int i=0;i<k;i++)
  {
   x=rd.nextInt(36-i);
   kNum.add(allNum.get(x));
   allNum.remove(x);
  }
  return kNum;
 }

}
 

原创粉丝点击