JAVA递归
来源:互联网 发布:weka apriori算法 编辑:程序博客网 时间:2024/06/07 07:06
public static StringBuilder recursonSolr(HashMap<String,Object> hashMap){ String operator = ""; Set<String> sets=hashMap.keySet(); if (sets.contains("AND") || sets.contains("OR")) { operator =hashMap.keySet().iterator().next(); System.out.println("xxxxxxxxxxxxxxxxx"+operator); StringBuilder stringBuilder1 = new StringBuilder(); stringBuilder1.append("("); HashMap<String,Object> map= (HashMap<String, Object>) hashMap.get(operator); for (String key:map.keySet()) { //递归............ StringBuilder stringBuilder2=new StringBuilder(); String value=""; if (map.get(key) instanceof HashMap){ value = recursonSolr((HashMap<String,Object>)map.get(key)).toString(); }else{ value=stringBuilder2.append(key).append(":").append(map.get(key)).toString(); } stringBuilder1.append(value); stringBuilder1.append(" " + operator + " "); } stringBuilder1.delete(stringBuilder1.length()-4,stringBuilder1.length()); stringBuilder1.append(")"); return stringBuilder1; } else { StringBuilder stringBuilder = new StringBuilder(); Set<String> set=hashMap.keySet(); stringBuilder.append("("); for(String key:set){ stringBuilder.append(key).append(":").append(hashMap.get(key)).append(" AND "); } stringBuilder.delete(stringBuilder.length()-4,stringBuilder.length()); stringBuilder.append(")"); return stringBuilder; }}
测试:
HashMap<String,Object> map=new HashMap<String, Object>(); HashMap<String,Object> map_and=new HashMap<String, Object>(); HashMap<String,Object> map1=new HashMap<String, Object>(); HashMap<String,Object> map_and1=new HashMap<String, Object>(); HashMap<String,Object> map2=new HashMap<String, Object>(); HashMap<String,Object> map_and2=new HashMap<String, Object>(); map.put("key","value"); map.put("key1","value1"); map_and.put("AND",map); map1.put("key3","value3"); map1.put("key4",map_and); map_and1.put("OR",map1); map2.put("key5",map_and1); map2.put("key6","value6"); map_and2.put("AND",map2);StringBuilder stringBuilder= recursonSolr(map_and2);System.out.println(stringBuilder.toString());备注:不传AND或者OR,则默认为AND
0 0
- java递归
- Java递归
- JAVA递归
- java 递归
- Java - 递归
- Java 递归
- JAVA递归
- java 递归
- java递归
- java递归
- 递归 Java
- java递归
- Java递归
- java递归
- Java 递归
- JAVA递归
- java递归
- 【Java】递归
- MyBatis批量插入返回主键
- django连接mysql
- mini2440通过dnw下载linux虚拟机的程序
- 开发简单的CMS
- codeforces Round #413 Div. 1 + Div. 2 C Fountains
- JAVA递归
- 快速自定义漂亮的Dialog
- 华东师范大学-E. 黑心啤酒厂
- eclipse数据表映射为实体类
- JS原型与原型链详解
- 之前runtime的坑
- 我会成为一个优秀的程序员吗
- 网络编程
- LRCN_activity_recognition