拟有100个随机字母,统计每个字母出现的次数,并对字母次数进行“快速排序”并输出结果

这里简单说一个方法,将map 的value值导入数组
Object[] l =map.values().toArray();返回一个Object类型数组

public class RandomChar {
public static void main(String[] args) {
String[] arr={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
Random rdm = new Random();
for(int i=0;i<100;i++){
   int j=rdm.nextInt(26);
   if(map.get(arr[j])==null){
   map.put(arr[j],1);
   }else{
   map.put(arr[j],map.get(arr[j])+1);
   }
} 
map.forEach((k,v)->System.out.println(k+" "+v));
System.out.println("----------------");
  System.out.println("将集合map的value值导入数组");

 Object[] array= map.values().toArray();
   for (Object object : array) {
   System.out.print(object+" ");
  }


System.out.println("对集合中字母出现的次数进行快速排序");
boss(array,0,array.length-1);

System.out.println("排序后的数组为:");
  for(int i=0;i<=array.length-1;i++){
   System.out.print(array[i]+",");
  }
}



public static int Sort(Object[] array,int low,int high){//第一趟快排,周到中轴移动元素
   int key;//定义中轴
   key=(int) array[low];//找数组中的一个随机元素为中轴,一般来说定义第一个为第一次的中轴
while(low=(int)array[low]){
     low++;
    }
    array[high]=array[low];
    }
    //当退出循环的时候,low和high重叠,此时low就是中轴的下标
  array[low]=key;//把刚开始保存的中轴的值赋值给中轴的位置
   return low;//把新的中轴下标返回
   }
   
public static void boss(Object[] array,int low,int high){
int mid;
if(low

你可能感兴趣的:(模拟有100个随机字母,统计字母出现的次数,并对字母次数进行快速排序,模拟有100个随机字母,统计字母出现的次数,并对字母次数进行快速排序)