请求指教。。。无知的小白的窝

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

ygKan

2019-05-12 12:41

public void testSort3(){
        List<String> stringList =new ArrayList<String>();
        String se ="zxcvbnmasdfghjklqwertyuiop1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
        StringBuilder st =new StringBuilder();
        Random random =new Random();
        int b ;
        for(int i =0;i<10;i++){
             b=random.nextInt(10)+1;
            do{
            for(int j =0;j<b;j++){
                int k =random.nextInt(se.length());
                st.append(se.charAt(k));
            }    
          }while(stringList.contains(st));
            
        }
        stringList.add(st.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);
        }
    }

写回答 关注

4回答

  • 精慕门7595355
    2019-07-14 23:43:45

    stringList.add(st.toString());

    这行代码要写到第一个循环的最底部,不然你这个就添加一个很长的字符串对象进List

    另外新建StringBuilder对象要放到do循环跟第二个for循环之间,每次获取下一个随机字符串前,都要初始化StringBuilder对象去清空,不然前面获取的字符串一直都在。

  • no4990
    2019-07-02 10:48:46
     StringBuilder st =new StringBuilder();

    放到第一个for循环里,作用:每生成一个字符串,清空一次。

  • 未成年_j
    2019-06-07 19:05:49

    你生成一个,应该把你st里面的值清空,不然他就一直附加

  • 我爱孙佳怡
    2019-05-17 23:53:28

    nice,写的很好,学了多久呀这么厉害

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题