這是我的目標如何基於對象屬性將列表對象生成多個列表?
public static class Phone{
public String model;
public String imei;
public String date_active;
}
這是我的列表對象例如
Phone a = new Phone ("Qs17", "1122", "20/10/2014");
Phone b = new Phone ("Qs18", "4345", "20/10/2014");
Phone c = new Phone ("Qs19", "3451", "21/10/2014");
Phone d = new Phone ("Qs20", "6756", "22/10/2014");
Phone e = new Phone ("Qs17", "1257", "22/10/2014");
Phone f = new Phone ("Qs17", "9077", "22/10/2014");
list.add(a);
list.add(b);
list.add(c);
list.add(d);
list.add(e);
list.add(f);
我希望我的列表拆分到具有相同的日期一些多單。 例子:
list1 = [{"QS17","1122","20/10/2014"}, {"QS18","4345","20/10/2014"}]
list2 = [{"QS19","3451","21/10/2014"}]
list3 = [{"QS20","6756","22/10/2014"}, {"QS17","1257","22/10/2014"}, {"QS17","9077","22/10/2014"}]
我SEACH對網絡的一些方式,發現這
static <T> List<List<T>> chopped(List<T> list, final int L) {
List<List<T>> parts = new ArrayList<List<T>>();
final int N = list.size();
for (int i = 0; i < N; i += L) {
parts.add(new ArrayList<T>(
list.subList(i, Math.min(N, i + L)))
);
}
return parts;
}
但它似乎取決於特定數量的子列表,對對象的屬性不基地。
我還搜索找到了另一種方式,發現這
Map<YourSplitterProperty, List<YourItem>> map = new HashMap<YourSplitterProperty, List<YourItem>();
for (YourItem item : yourItems) {
List<YourItem> list = map.get(item.getSplitterProperty());
if (list == null) {
list = new ArrayList<YourItem>();
map.put(item.getSplitterProperty(), list);
}
list.add(item);
}
但是這種方式只返回一個列表,我需要返回其有根名單上的同一屬性的多個列表。
有人可以幫我嗎?
Nuong,你的問題還不太清楚,請你澄清一下。 – 2014-10-31 05:08:40
@Luiggi門多薩,我想將我的列表分割成多個列表,它們具有相同的date_active – CauCuKien 2014-10-31 05:09:34
@pratt如何通過'Phone'類的特定屬性從列表'中*做一類* group。 –
2014-10-31 05:09:59