安排同類型的數據,我在做什麼什麼應該是集收藏
我讀的所有聯繫人在手機上,並將它們存儲在一個集中的邏輯。 Set的語法是Set<String> contactNumbers = new HashSet<String>();
。而且我用這個代碼讀取聯繫人
phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.TYPE},
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ id, // We need to add more selection for phone type
null,
null);
if(phones != null) {
while(phones.moveToNext()){
switch(phones.getInt(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE))){
case Phone.TYPE_MOBILE :
contactNumbers.add(phones.getString(0).trim() + "M");
break;
case Phone.TYPE_HOME :
contactNumbers.add(phones.getString(0).trim() + "H");
break;
case Phone.TYPE_WORK :
contactNumbers.add(phones.getString(0).trim() + "W");
break;
case Phone.TYPE_OTHER :
contactNumbers.add(phones.getString(0).trim() + "O");
break;
}
}
}
問題的定義:
我想用自己的類別來安排數。就像5個數字與家庭類別3個工作號碼和4個來自其他類別一樣,那麼我需要按照「所有特定類型的數字都應該按順序排列」排列所有數字。 例如我的Set包含前5個數字相關的首頁,然後所有3個數字的工作,然後所有4個數字的其他類別。我怎樣才能實現這個邏輯?
LinkedHashSet保持插入順序 – chedine
@chedine - 真實的,但是:1' Set'接口不保證任何順序。 2. OP使用了一個不保持順序的'HashSet'。 'SortedSet'也是一種替代方法,但是'Set'根據定義是不能承諾順序的。 我不明白爲什麼我的回答是反對票。 – RonK
我還沒有投下你的答案.. – chedine