for(int i=0;i<6){
       String imageName=null;
       StringBuffer sb = new StringBuffer();
       Date date = new Date();
       // 获取年月日时分秒
       sb.append(new SimpleDateFormat("yyyyMMddHHmmss").format(date));
      // 毫秒
      String milli = String.valueOf(date.getTime() % 1000);
      while (milli.length() < 3) {
    milli = "0" + milli;
      }
      sb.append(milli);
      // 四位随机数
        String rondom = String.valueOf(new Random().nextInt(10000));
    while (rondom.length() < 4) {
   rondom = "0" + rondom;
    }
      sb.append(rondom);
      imageName=sb.toString();
}
这个循环中产生的imageName总是有相同的,我怎么样使这个循环中产生的imageName产生的不相同,求助。

解决方案 »

  1.   

    用Set来装结果吧,set是不允许出现相同值的
      

  2.   


    public static void main(String[] args) {
    String result = "0";
     int []nums = {1,2,3,4,5,6,7,8,9};
     for (int i = 0; i < 4; i++) {
    int end = nums.length - i - 1;//尾部
    //在end范围内产生随机数 作为数组索引
    int index = (int)(Math.random()* end);

    //将产生出的index索引对应的数 和end位的数 交换
    int temp = nums[index];
    nums[index] = nums[end];
    nums[end] = temp;


    result += temp;

     }
    System.out.println(result);
    }
      

  3.   

    是我看错代码了还是你发的代码不全呢。
    总感觉你这for循环是的死循环来的。
    没有对i--或者是赋值操作的
      

  4.   

    题目意思看错了 还以为还产生一个4个不相同的数。。
    这题如1楼所说,用set去实现吧 Set<String> set = new HashSet<String>();
    while(set.size() < 6){
    .............
                             
    set.add(rondom);
    }
      

  5.   


    代码如下:import java.util.Random;
    public class Test {
    public static void main(String[] args) {
    String s = "";
    String removeReplication = "";
    Random r = new Random();
    int count = 0;
    int value;
    while(true) {
    if(count == 6)
    break;
    value = r.nextInt(10);
    if(!s.contains(String.valueOf(value))) {
    s += value;
    count++;
    } else {
    continue;
    }
    }
    System.out.println(s);
    }
    }第一次测试结果:809536
    第二次测试结果:769850
    第三次测试结果:780351
    给分吧,楼主!
      

  6.   

    这是第二种方法:
    import java.util.HashSet;
    import java.util.Random;
    import java.util.Set;
    public class Test {
    public static void main(String[] args) {
    Set<Integer> set = new HashSet<Integer>();
    Random r = new Random();
    StringBuffer s = new StringBuffer();
    while(set.size() < 6) {
    set.add(r.nextInt(10));
    }
    for(int v:set) {
    s.append(v);
    }
    System.out.println(s);
    }
    }