将对象类型数组列表存储到一组字符串类型中

时间:2014-04-26 05:32:27

标签: java

我已经解决了以下hibernate查询,该查询完美地获取数据,但返回类型为List,如下所示。

public List<Object[]> Extractingc()
    {

        Criteria criteria = session.createCriteria(IDetails.class);
        ProjectionList proList = Projections.projectionList();
        proList.add(Projections.property("sem"));  //is of string type
        proList.add(Projections.property("tid"));  //is of long type in pojo  *******
                    criteria.setProjection(proList);            
        List<Object[]> settlementIdList =  criteria.list();
        return sst;

    }

现在java代码中出现的问题是我将上述方法的结果放在代码中的一个列表中,如下所示......

List<Object[]> ioaist =  ioabookandinstrumenthome.Extractingc(); 

现在我希望list的结果存储在一个字符串类型的hashset中,所以我创建了字符串类型的hashset,如下所示......

Set<String> ser = new HashSet<String>(); 

现在我将结果存储在set中,如下所示..

for (Object[] arr : ioaist) {
ser.add( (String) arr[0] , (String) arr[1] );
}

但它会抛出编译时异常,请告知我如何将结果存储在最终的集合

1 个答案:

答案 0 :(得分:0)

您的问题是ser.add( (String) arr[0] , (String) arr[1] );

您无法为一组添加2个值。您要查看Map.add(Key,Value),然后将Set<String> ser = new HashSet<String>();更改为Map<String,String> ser = new HashMap<String,String>(); and ser.add((String)arr [0],(String)arr [1]); {{ 1}} ser.put((String)arr [0],(String)arr [1]);`

否则 将to更改为ser.add( (String) arr[0] , (String) arr[1] );