从Android </string>中的List <string>中删除重复值

时间:2015-04-15 05:53:18

标签: java android json

我有一个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"));
                        }
                    }

5 个答案:

答案 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"));
}