帮忙看看代码哪里错了?

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

lucitas

2016-03-09 18:40

public void test2(){
		List<String> StringList=new ArrayList<String>();
		Random random=new Random();
		char [] charArray=("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
		
		for(int j=0;j<10;j++){
		StringBuilder sb=new StringBuilder();
		do{
		for(int i=0;i<random.nextInt(10)+1;i++){
			sb.append(charArray[random.nextInt(62)]);
		}
		StringList.add(sb.toString());
		}
		while(StringList.contains(sb.toString()));
		}
		System.out.println("*********排序前*********");
		for (String string : StringList) {
			System.out.println(string);
		}
		System.out.println("********排序后***********");
		Collections.sort(StringList);
		for (String string : StringList) {
			System.out.println(string);
		}
	}


写回答 关注

3回答

  • Zhr1990
    2016-03-09 19:23:57
    已采纳

    12行不对,应该放到14行的后面

    lucita...

    非常感谢!

    2016-03-09 20:21:18

    共 2 条回复 >

  • Zhr1990
    2016-03-09 20:45:52

    内层for循环好像不对。。看看我写的吧

    public class RandomStr {
        
        public List<String> list = new ArrayList<String>();
        String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        
        Random random=new Random();
        
        public static void main(String[] args) {
            RandomStr rm = new RandomStr();
            rm.sortStr(rm.addStr());
        }
        //生成字符串集合
            List<String> addStr(){
                for(int i=0;i<10;i++){
                    StringBuilder sb = new StringBuilder();
                    int tmp = 0;
                    char ch;
                    do{
                    tmp = random.nextInt(10);
                    }while(tmp==0);
                    for(int j=0;j<tmp;j++){
                        do{
                            ch = str.charAt(random.nextInt(str.length()));
                    }while(list.contains(sb));
                        sb.append(ch);
                    }
                    list.add(sb.toString());
                }
                return list;
                
            }
        
        //排序字符串集合
        void sortStr(List<String> list){
            System.out.println("=====排序前的顺序=====");
            for(String str:list){
                System.out.print(str+"-");
                }
            Collections.sort(list);
            System.out.println();
            System.out.println("=====排序后的顺序=====");
            for(String str:list){
            System.out.print(str+"-");
            }
        }
        
    }

  • Zhr1990
    2016-03-09 19:44:59

    你还是先看看do...while语句吧,这个程序的执行过程你还没有弄明白

Java入门第三季

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

409784 学习 · 4339 问题

查看课程

相似问题