2014-09-25 48 views
0

我在Java中拥有此代码。我正在开发一个android项目,但这完全是Java。在列表中获取ArrayList中的特定项目Java

List<Group> groupsearch = null; 
groupsearch = ((GroupApi)api).getMyGroup(sm.getCurrentSession().ID); 

//groupsearch returns a nested Arraylist of items e.g 
groupsearch[0] = group[0]= {companies: datacom; groupname: skype, datecreated: july 2014} 
groupsearch[1] = group[1] = {companies: bittorrent; groupname: yahoo, datecreated: july 2014 

我希望能够通过List<Group> groupsearch搜索和检查字符串输入newgroupnameList已经存在。

List<Group> groupsearch = null; 
GroupApi api = new GroupApi(context); 
try { 
    groupsearch = ((GroupApi)api).getMyGroup(sm.getCurrentSession().ID); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
for (int i =0; i<groupsearch.size(); i++) 
{ 
    if(groupsearch.get(i).toString().equals(etNewGroupName.getText().toString())) 
    { 
     Toast.makeText(context, "Group Has Already Been Created", Toast.LENGTH_SHORT).show(); 
     finish(); 
    } 

//etNewGroupName is the input text 

感谢您的帮助

+0

'Group.toString()'看起来像什么,因为这就是您当前正在检查新组名的原因。如果'Group'看起来合理,它会有一些看起来像'getGroupName()'的方法,它可以让你访问特定项目的组名。听起来像这就是你应该检查的东西。 (这是非常基本的Java的东西顺便说一句) – 2014-09-25 10:17:25

+0

我认为你需要使用Set而不是List。 – farmer1992 2014-09-25 10:26:21

回答

-2

通过查看线路

groupsearch[0] = group[0]= {companies: datacom; groupname: skype, datecreated: july 2014} 
groupsearch[1] = group[1] = {companies: bittorrent; groupname: yahoo, datecreated: july 2014 

相信集团的对象存储键,值对。它是一张地图。

在您的代码中,而不是List<Group> groupsearch,请使用ArrayList<Group> groupsearch。它是List接口的更具体的实现。 然后遍历arraylist groupsearch。在每次迭代中,您将获得的对象是Map。在此进一步搜索地图etNewGroupName基于密钥groupname。 它应该工作。

+0

更改'List'到'ArrayList'不会改变'getMyGroup'返回的实现 – TedTrippin 2014-09-25 10:42:24

+0

另外,你为什么说它是一个'Map'? Op已经说过它是一个“Group”对象。 – TedTrippin 2014-09-25 10:44:02

+0

@TedTrippin组对象以Key,Value对的形式返回值。 '{公司:datacom; groupname:skype,datecreated:july 2014}''。因此我说它可能是一张地图。虽然Group对象的实际结构不会显示在代码片段中 – ARC 2014-09-25 10:58:02