猿问

每日一问---关于字符串排序 List和Collections工具的疑问

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类型的

教学视频里似乎没有提到类似的问题

请高人传道授业解惑

K丶k
浏览 911回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答