在列表中只显示类似项目之一

时间:2015-03-21 00:17:12

标签: android list

我有这样的数字列表:

-153
-542
-153
-153
-783
-785
-975
-153
-478

如你所见" 153"显示了4次,但我想只显示这个数字一次:

-153
-542
-783
-785
-975
-478

编辑:

我需要获取所有消息号码,但只显示一个,如果这里的类似数字是我的方法:

    public static List<SMSData> getAllNumbers(Context context){

    List<SMSData> smsList = new ArrayList<SMSData>();

    Uri uri = Uri.parse("content://sms/inbox");
    Cursor c= context.getContentResolver().query(uri, null,null,null,null);

    // Read the sms data and store it in the list
    if(c.moveToFirst()) {
        for(int i=0; i < c.getCount(); i++) {

            SMSData sms = new SMSData();
            sms.setBody(c.getString(c.getColumnIndexOrThrow("body")).toString());
            sms.setNumber(c.getString(c.getColumnIndexOrThrow("address")).toString());
            sms.setDate(c.getString(c.getColumnIndexOrThrow("date")).toString());
            smsList.add(sms);


            c.moveToNext();
        }
    }
    return smsList;
}

我喜欢这个解决方案:

https://stackoverflow.com/a/19305534/3522182

全部。

1 个答案:

答案 0 :(得分:0)

    ArrayList yourList = new ArrayList();
/*
add your values to the list
*/
    ArrayList simpleList = new ArrayList();

    HashSet hashset = new HashSet();
    hashset.addAll(yourList);

    simpleList.addAll(hashset);// your list now has the unique numbers

注意:此处的订单是意外的。如果你想要它的顺序,使用linkedHashSet来保持相同的顺序。