我有一个List并且它有重复值,我想从中省略重复值并仅过滤单个值,
当前输出为{a, a, a, b, b, c, c, d, d, d, d}
,我想更改它并将输出设为{a, b, c, d}
。
这是我现在用来获取当前输出的代码,
List<String> pickupOutlet = new ArrayList<String>();
@Override
public void onTaskCompleted(JSONArray responseJson) {
// TODO Auto-generated method stub
try {
for (int i = 0; i < responseJson.length(); ++i) {
JSONObject object = responseJson.getJSONObject(i);
Log.i("OutletName", object.getString("OutletName"));
pickupOutlet.add(object.getString("OutletName"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
任何人都可以帮助我如何实现它。
已更新
当前代码
这对我有用
for (int i = 0; i < responseJson.length(); ++i) {
JSONObject object = responseJson.getJSONObject(i);
if (!pickupOutletDuplicates.contains(object.getString("OutletName"))){
Log.i("OutletName", object.getString("OutletName"));
pickupOutletDuplicates.add(object
.getString("OutletName"));
}
}
答案 0 :(得分:3)
您可以使用Set作为示例哈希集。
答案 1 :(得分:3)
检查您的列表是否已包含值:
JSONObject object = responseJson.getJSONObject(i);
Log.i("OutletName", object.getString("OutletName"));
if (!pickupOutlet.contains(object.getString("OutletName"))
pickupOutlet.add(object.getString("OutletName"));
答案 2 :(得分:3)
List<String> duplicateList = (List<String>) Arrays.asList("a" ,"a" ,"a" , "b", "b", "c","c","d","d","d","d");
duplicateList.size());
System.out.println(duplicateList);
//将ArrayList转换为HashSet以删除重复项
HashSet<String> listToSet = new HashSet<String>(duplicateList);
//创建没有重复值的Arraylist
List<String> listWithoutDuplicates = new ArrayList<String>(listToSet);
System.out.println("size of ArrayList without duplicates: " + listToSet.size());
System.out.println(listWithoutDuplicates);
答案 3 :(得分:2)
只需使用Set而不是List。因为Set仅包含唯一值。而list包含重复值。
Set<String> pickupOutlet = new HashSet<String>();
@Override
public void onTaskCompleted(JSONArray responseJson) {
// TODO Auto-generated method stub
try {
for (int i = 0; i < responseJson.length(); ++i) {
JSONObject object = responseJson.getJSONObject(i);
Log.i("OutletName", object.getString("OutletName"));
pickupOutlet.add(object.getString("OutletName"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
答案 4 :(得分:0)
检查拾取插座是否包含重复值
if(!pickupOutlet.contains(object.getString("OutletName"))){
pickupOutlet.add(object.getString("OutletName"));
}