[英]Can we use Linq for geting value from collection object in java?
現在有一天,我在黑莓上工作,我將一些JSON數組解析為String,然后將其轉換為Hashtable,如下所示
這是我的JSON字符串
[
{
"StdID":"A1",
"RollNo":"23",
"Class":"First"
},
{
"StdID":"A2",
"RollNo":"13",
"Class":"First"
},
{
"StdID":"A3",
"RollNo":"53",
"Class":"Second"
},
{
"StdID":"A4",
"RollNo":"33",
"Class":"Third"
},
]
我將其解析為哈希表為
Hashtable t1=new Hashtable();
t1.put("StdID","A1");
t1.put("RollNo","23");
t1.put("Class","First");
Hashtable t2=new Hashtable();
t2.put("StdID","A2");
t2.put("RollNo","13");
t2.put("Class","First");
Hashtable t3=new Hashtable();
t3.put("StdID","A3");
t3.put("RollNo","53");
t3.put("Class","Second");
Hashtable t4=new Hashtable();
t4.put("StdID","A4");
t4.put("RollNo","33");
t4.put("Class","Third");
Hashtable main=new Hashtable ();
main.put(new Integer(1), t1);
main.put(new Integer(2), t2);
main.put(new Integer(3), t3);
main.put(new Integer(4), t4);
那么我/我怎樣才能將值檢索為
選擇有頭等艙的學生
有人可以幫我嗎? LINQ有可能嗎?
嗯...是的! 但是您需要此庫來存儲Java LINQ內容://github.com/nicholas22/jpropel-light
怎么做:
import java.util.Hashtable;
import lombok.ExtensionMethod;
import propel.core.utils.Linq;
import java.util.List;
import lombok.Function;
@ExtensionMethod({Linq.class})
public class Main
{
public static void main(String[] args)
{
Hashtable t1=new Hashtable();
t1.put("StdID","A1");
t1.put("RollNo","23");
t1.put("Class","First");
Hashtable t2=new Hashtable();
t2.put("StdID","A2");
t2.put("RollNo","13");
t2.put("Class","First");
Hashtable t3=new Hashtable();
t3.put("StdID","A3");
t3.put("RollNo","53");
t3.put("Class","Second");
Hashtable t4=new Hashtable();
t4.put("StdID","A4");
t4.put("RollNo","33");
t4.put("Class","Third");
Hashtable main = new Hashtable();
main.put(new Integer(1), t1);
main.put(new Integer(2), t2);
main.put(new Integer(3), t3);
main.put(new Integer(4), t4);
List<Hashtable> result= main.values().where(classEquals("First")).toList();
for(Hashtable ht : result)
System.out.println(ht.get("StdID"));
}
@Function
private static Boolean classEquals(Hashtable table, String _class) {
return table.get("Class") != null && table.get("Class").equals(_class);
}
}
沒有 linq適用於.NET 3.5或更高版本,不適用於JAVA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.