/**
* 字符串进行排序 * list * start * end * targen * */ 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); }//调用示例
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()); }