/**
* 字符串进行排序
* @param list
* @param start
* @param end
* @param targen
* @return
*/
public static int seek(List<Map<String, Object>> list,int start,int end,String targen) {
int index = (start + end) / 2;
// 判断须要 查找的值 在不在数组里面
if(toAscii(targen)>toAscii(list.get(end).get("key").toString())
||toAscii(targen)<toAscii(list.get(start).get("key").toString())
||start>end) {
return -1; //不在返回 -1 ;
}
if(toAscii(targen)>toAscii(list.get(index).get("key").toString())) {
return seek(list,index + 1,end,targen);
}else if(toAscii(targen)<toAscii(list.get(index).get("key").toString())){
return seek(list,start,index-1,targen);
}else {
return index;
}
}数组
/**
* 将字符串转化成 ascii 码
* @param targen 须要转化的字符串
* @return
*/
public static int toAscii(String targen) {
char[] chars = targen.toCharArray();
String asiic = "";
for(char as : chars) {
asiic += (byte)as +"";
}
return Integer.parseInt(asiic);
}.net
//调用示例排序
public static void main(String[] args) {
int a = (int)'a';
System.out.println(a);
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
Map<String, Object> map1 = new HashMap<String,Object>();
map1.put("key", "abc");
list.add(map1);
Map<String, Object> map2 = new HashMap<String,Object>();
map2.put("key", "abd");
list.add(map2);
Map<String, Object> map3 = new HashMap<String,Object>();
map3.put("key", "abf");
list.add(map3);
Map<String, Object> map4 = new HashMap<String,Object>();
map4.put("key", "abh");
list.add(map4);
Map<String, Object> map5 = new HashMap<String,Object>();
map5.put("key", "abg");
list.add(map5);
System.out.println(seek(list,0,list.size()-1,"abf"));
System.out.println(list.get(seek(list,0,list.size()-1,"abf")).get("key").toString());
} ci