我有这样的数字列表:
-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
全部。
答案 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来保持相同的顺序。