package com.kandy.imoockecheng.listmap; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; public class StringSort { public static void main(String[] args) { /* * 随机生成10条长度10以内,不可重复的字符串,每条字符串内的字符可以重复 * 为节省String消耗,全部使用 StringBuilder */ //定义字符串条数 int count = 10; //定义最大字符串的长度 int maxLength = 10; //定义备选字符N个 StringBuilder stringBuilder = new StringBuilder("ABCDEFGHIJGLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"); //定义被选出来的字符串 StringBuilder stringSel = new StringBuilder(); //创建字符串List集合 List<String> strList = new ArrayList<>(); //do循环控制字符串的条数 do { //随机字符串的长度(10以内) int rdLong = new Random().nextInt(maxLength); //for循环随机拼凑字符的和长度 for (int i = 0; i < rdLong; i++) { //随机获取备选字符串某个字符的索引位置 int index = new Random().nextInt(stringBuilder.length()); //按索引位置选出一个字符,把随机生成的字符追加到stringSel stringSel.append(stringBuilder.charAt(index)); } //如果包含字符串,重新生成随机字符串 if(strList.contains(stringSel.toString())) continue; //把随机生成的字符串添加到strList中 strList.add(stringSel.toString()); //清空stringSel stringSel.delete(0,stringSel.length()-1); } while (strList.size() != count); //10条后跳出do循环 System.out.println("*******排序前************"); strList.forEach(System.out::println); //进行排序 Collections.sort(strList); System.out.println("*******排序后************"); strList.forEach(System.out::println); } }
我觉得可能是Collection是一个父类的接口,List是它的子类接口,并没有继承sort方法
运行结果: