Lio*_*luz 1 java android arraylist hashmap linkedhashmap
我想这些问题的标题说明了一切,或者什么也没说......经过几个小时的谷歌搜索,尝试和重新发明Java我决定问你.
我有这个存储类:
class AppInfo implements Comparable<AppInfo > {
private String appname = "";
private String pname = "";
private String versionName = "";
//private int versionCode = 0;
private Drawable icon;
private String appdir = "";
private String appSize = "";
@Override
public int compareTo(AppInfo other) {
int compareAppsName = appname.compareToIgnoreCase(other.appname);
return compareAppsName;
}
}
Run Code Online (Sandbox Code Playgroud)
我做我做的事情,最终我得到一个填充对象的List.一切都很好,ListView填充了正确的数据......
现在我想搜索一个字符串(某个pname)并查看它是否存在于List中,如果存在,它在列表中的位置(它的索引)是什么.
尝试创建另一个列表,只包含我需要的数据..尝试了Lists,HashMaps,LinkedHashMap,2维数组/ arrayList ......没有做到这一点......还尝试迭代列表但无法弄清楚如何处理元素我有.
希望我有所作为,甚至可能.
披露:请耐心等待,我是Java的新人.
小智 5
我不完全确定我理解你的问题,但如果你想找到具有给定pname值的列表元素的索引,你可以这样做:
List<Integer> indices = new ArrayList<Integer>();
for (int i = 0; i < list.size(); i++) {
String panme = list.get(i).getPname();
if (pname != null && pname.equals(expectedPname));
indices.add(i);
}
}
Run Code Online (Sandbox Code Playgroud)
我只是重读了你的问题,听起来你只希望索引出现一次.对困惑感到抱歉.为此,您可以使用相同的想法,而无需其他列表:
int matchingIndex = -1;
for (int i = 0; i < list.size(); i++) {
String pname = list.get(i).getPname();
if (pname != null && pname.equals(expectedPname));
matchingIndex = i;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5086 次 |
| 最近记录: |