本文实例讲述了java实现按照大小写字母顺序排序的方法。分享给大家供大家参考,具体如下:
这里排序需要得到的结果按字母顺序。如:a-----z...
import java.util.*;
/**
* 大小写字母的排序
* @author administrator
*
*/
public class z {
//上边是按大写在后的进行排序
static map map=new hashmap();//hashmap允许null值
//按大写在前的进行排序
static map map1=new hashmap();//hashmap允许null值
//
static{
character ch;
for (ch = 65; ch < 91; ch++) {//大写65.0;66.0;67.0;68.0
map.put(ch,(float)ch.hashcode());
}
for (ch = 97; ch < 123; ch++) {//小写64.5;65.5
map.put(ch,(float)ch.hashcode()-(float)32-0.5f);
}
for (ch= 65; ch < 91; ch++) {//大写65.0;66.0;67.0;68.0
map.put(ch, (float)ch.hashcode());
}
for (ch = 97; ch < 123; ch++) {//小写64.5;65.5
map.put(ch, (float)ch.hashcode()-(float)32+0.5f);
}
}
/**
* @first 大写在后的数组值在map中找 value的值
* @second 通过collections的排序方法得到递增数list
* @third 反操作map得到char值
* @param ar要排序的数组
*/
public list addlist(char[] ar){
list list =new java.util.arraylist();
for (int i = 0; i < ar.length; i++) {
list.add(map.get(ar[i]));
}
list lis=new arraylist();
collections.sort(list);
iterator it=list.iterator();
while(it.hasnext()){
string str=it.next().tostring();
if(str.endswith(".0")){
lis.add((char)float.parsefloat(str));
}else{
lis.add((char)(float.parsefloat(str)+0.5+32));
}
}
return lis;
}
/**
* 大写在前的数组值在map中找value的值
* @param ar
* @return
*/
public list addlist1(char[] ar){
list list=new java.util.arraylist();
for (int i = 0; i < ar.length; i++) {
list.add(map.get(ar[i]));
}
list lis=new arraylist();
iterator it=list.iterator();
while(it.hasnext()){
string str=it.next().tostring();
if(str.endswith(".0")){
lis.add((char)float.parsefloat(str));
}else{
lis.add((char)(float.parsefloat(str)+0.5-32));
}
}
return lis;
}
public static void main(string []args){
system.out.println("萬仟网测试结果:");
char ch [] ={'a','a','b','f','m','k'};
list list=new z().addlist(ch);
iterator it=list.iterator();
while(it.hasnext()){
system.out.println(it.next()+",");
}
}
}
运行结果:
希望本文所述对大家java程序设计有所帮助。
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!