这里简单说一个方法,将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