我们可以在java中使用Linq从集合对象获取值吗?

我们可以在java中使用Linq从集合对象获取值吗?,java,linq,blackberry,Java,Linq,Blackberry,现在我在blackberry上工作了几天,我将一些JSON数组解析为字符串,然后将其转换为如下所示的哈希表 这是我的JSON字符串 [ { "StdID":"A1", "RollNo":"23", "Class":"First" }, { "StdID":"A2", "RollNo":"13", "Class":"First" }, { "StdID":"A3", "RollNo":"53", "Class":

现在我在blackberry上工作了几天,我将一些JSON数组解析为字符串,然后将其转换为如下所示的哈希表

这是我的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是否可以这样做?

否。是.NET的一部分,而不是Java

另见

linq适用于.NET 3.5或更高版本,而不是JAVA

正如大家所说,JAVA没有linq,因为这只是.NET技术

但您可以使用提供类似功能的API,例如


顺便说一句,还有人问了一个类似的问题,请查收。

嗯。。。对但是您需要这个库来存储Java LINQ stuff://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);
  }
}
import java.util.Hashtable;
导入lombok.ExtensionMethod;
导入prople.core.utils.Linq;
导入java.util.List;
导入lombok.函数;
@ExtensionMethod({Linq.class})
公共班机
{
公共静态void main(字符串[]args)
{
Hashtable t1=新的Hashtable();
t1.投入(“StdID”、“A1”);
t1.投入(“罗尔诺”,“23”);
t1.投入(“类”、“第一”);
Hashtable t2=新的Hashtable();
t2.put(“StdID”、“A2”);
t2.put(“RollNo”、“13”);
t2.投入(“类别”、“第一”);
Hashtable t3=新的Hashtable();
t3.put(“StdID”、“A3”);
t3.put(“RollNo”、“53”);
t3.投入(“第二类”);
Hashtable t4=新的Hashtable();
t4.认沽期权(“StdID”、“A4”);
t4.出售(“RollNo”,“33”);
t4.卖出期权(“第三类”);
Hashtable main=新的Hashtable();
main.put(新整数(1),t1);
main.put(新整数(2),t2);
main.put(新整数(3),t3);
main.put(新整数(4),t4);
列表结果=main.values()。其中(classEquals(“First”)).toList();
for(哈希表ht:result)
System.out.println(ht.get(“StdID”);
}
@作用
私有静态布尔类equals(哈希表,字符串_类){
返回table.get(“Class”)!=null和&table.get(“Class”).equals(\u Class);
}
}

是,请参阅我的完整回复。