package com.myself2; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Random; import java.util.stream.Collector; import java.util.stream.Collectors; public class TEST { public static String set ="1234567890ABCDEFGHIJKLNOPQRSTUVWXYZabcdefghijklnopqrstuvwxyz"; public static String set2="1234"; public static StringBuffer str = new StringBuffer(); //StringBuffer 有可修改 和拼接功能 public static List <String> list = new ArrayList<String>(); static Random random = new Random(); public static void main(String[] args) { for(int i=0;i<10;) // 定义生成 10 个随机 字符串 { //>>>> 初始化 str StringBuffer str = new StringBuffer(); int getnewsrt = random.nextInt(10); //返回一个0-10的随机数作为 下列循环次数 = 新的字符串的长度 for(int i2=0;i2<getnewsrt;i2++){ int getindex = random.nextInt(set.length()); //返回一个 随机字符库 长度的 的整形数字作为索引 str.append(set.substring(getindex, getindex+1)); } // 内部for 循环结束 获取到了一个 成熟的 经过加工的get字符串 System.out.println("本次循环得出的字符串为"+str); //判断 如果 集合list 中包含了 str 即重复 则i不变 循环不计数 否则 i+1 并且条用add方法 String getstr = str.toString(); if(list.contains(getstr)){//i不变 循环不计数 } else{i++;list.add(getstr);} //↑ // 由于 此处 不论 是否包含了str 再循环体中str都被我们加工过 //↑ // 影响下一次循环体的输出 //↑ //因此 再 下一次 循环开始之前 我们要重新初始化 str } //整个for循环结束 //开始排序 Collections.sort(list); System.out.println("-------排序后---------"); for(int i=0;i<list.size();i++) { System.out.println("第"+(i+1)+"个字符串为"+list.get(i)); } } }
今晚学习过程 发现
List 可以定义成 StringBuffer 的泛型
但是 Collections 类的 sort 方法 不可以排序 StringBuffer 的List
却可以 排序String类型的
教学视频里似乎没有提到类似的问题
请高人传道授业解惑
相关分类