贴一下自己代码,看有木有要改进的地方

来源:6-5 应用 Collections.sort() 实现 List 排序

zzl7

2016-01-13 01:38

package com.imooc;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class CollectionsTest {
    
    public void testRandomStringSort(){
        String az09 = "0123456789QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
        List<String> stringList = new ArrayList<String>();
        Random rd= new Random();
        for(int i=0;i<10;i++){
            int strLength = rd.nextInt(9)+1;
            String strRandom = "";
            do{
                strRandom = "";
                for(int j=0;j<strLength;j++){
                    int num = rd.nextInt(az09.length());
                    strRandom += az09.charAt(num);
                }    
            }while(stringList.contains(strRandom));
            stringList.add(strRandom);
            System.out.println("成功添加:"+strRandom);
        }
        System.out.println("——————排序前————————");
        Collections.sort(stringList);
        for(String str:stringList){
            System.out.println("元素:"+str);
        }
        
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        CollectionsTest clt = new CollectionsTest();
        
        clt.testRandomStringSort();
    }

}

写回答 关注

3回答

  • nashi
    2016-02-10 22:25:29
        public static String randomString(int length){
            StringBuilder sb = new StringBuilder(length);
            for(int i=0;i<length;i++){
                sb.append((char)(ThreadLocalRandom.current().nextInt(33,128)));
            }
            return sb.toString();
        }
        
        public void testSort2(){
            List<String> stringList = new ArrayList<String>();
            Random random = new Random();
            System.out.println("----preSort-----");
            String k;
            for(int i=0;i<10;i++){
                do{
                    k=randomString(random.nextInt(11));
                    System.out.println("Element:"+k);
                }while(stringList.contains(k));
            }
            Collections.sort(stringList);
            System.out.println("----postSort-----");
            for(String string: stringList){
                System.out.println("Element:"+string);
            }
        }


  • 梁XX
    2016-01-30 19:29:44
                    Random number = new Random();
    		int length;
    		do{
    		length =number.nextInt(11);//规定1-10 的长度,返回一个1-10的其中一个数
    		}while(length ==0);
    		
    		//可以考虑改进的地方
    		//可以就是把字符都塞进去一个List中,就不用自己这么麻烦


  • 白马少年醉春风
    2016-01-21 19:32:51

     int strLength = rd.nextInt(9)+1;这个就相等于 int strLength = rd.nextInt(10); 随机数包括0但不包括10,其他的和我的差不多

    (。・`ω´・)


    zzl7

    嗯,是哈

    2016-01-31 23:54:28

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409764 学习 · 4543 问题

查看课程

相似问题