Java 从列表中删除重复值<;字符串>;在Android中

Java 从列表中删除重复值<;字符串>;在Android中,java,android,json,Java,Android,Json,我有一个列表,它有重复的值,我想从中去掉重复的值,只过滤单个值 当前输出是{a,a,a,b,b,c,c,d,d},我想更改它,并将输出作为{a,b,c,d} 这是我现在用来获取当前输出的代码 List<String> pickupOutlet = new ArrayList<String>(); @Override public void onTaskCompleted(JSONArray responseJson) {

我有一个列表,它有重复的值,我想从中去掉重复的值,只过滤单个值

当前输出是
{a,a,a,b,b,c,c,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();
            }
        }
List pickupOutlet=new ArrayList();
@凌驾
已完成TASKC上的公共作废(JSONArray responseJson){
//TODO自动生成的方法存根
试一试{
对于(int i=0;i
有谁能帮我实现它吗

已更新

当前代码

这对我有用

                    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"));
                        }
                    }
for(int i=0;i
您可以使用,例如HashSet。

检查您的列表是否已经包含以下值:

JSONObject object = responseJson.getJSONObject(i);

Log.i("OutletName", object.getString("OutletName"));
if (!pickupOutlet.contains(object.getString("OutletName"))
   pickupOutlet.add(object.getString("OutletName"));

检查pickupOutlet是否包含如下所示的dulicate值

if(!pickupOutlet.contains(object.getString("OutletName"))){
pickupOutlet.add(object.getString("OutletName"));
}

只需使用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();
            }
        }
Set pickupOutlet=new HashSet();
@凌驾
已完成TASKC上的公共作废(JSONArray responseJson){
//TODO自动生成的方法存根
试一试{
对于(int i=0;i
List duplicateList=(List)数组;
duplicateList.size());
系统输出打印项次(重复列表);
//将ArrayList转换为HashSet以删除重复项

HashSet<String> listToSet = new HashSet<String>(duplicateList);
HashSet-listToSet=新的HashSet(duplicateList);
//创建没有重复值的Arraylist

 List<String> listWithoutDuplicates = new ArrayList<String>(listToSet);

System.out.println("size of ArrayList without duplicates: " + listToSet.size()); 

System.out.println(listWithoutDuplicates);
List List without duplicates=new ArrayList(listToSet);
System.out.println(“没有重复项的ArrayList的大小:+listToSet.size());
System.out.println(列表无重复项);

您可以使用谷歌搜索此问题,或者尝试使用HashSetU检查更新的question@modabeckham什么意思是它不起作用。oyu能否提供一个可运行的示例,以便我可以自己尝试?我能够获得输出
 List<String> listWithoutDuplicates = new ArrayList<String>(listToSet);

System.out.println("size of ArrayList without duplicates: " + listToSet.size()); 

System.out.println(listWithoutDuplicates);