Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据对象属性将列表对象生成多个列表?_Java_Android - Fatal编程技术网

Java 如何根据对象属性将列表对象生成多个列表?

Java 如何根据对象属性将列表对象生成多个列表?,java,android,Java,Android,这是我的目标 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 Pho

这是我的目标

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);
我想将我的列表拆分为具有相同日期的多个列表。 例如:

我在网上搜索了一些方法,发现了这个

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);
}
}

但它似乎取决于子列表的具体数量,而不是基于对象的属性

我也在寻找另一种方法,找到了这个

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);
}
但这种方法只返回一个列表,我需要返回根列表上具有相同属性的多个列表


有人能帮我吗?

第一种方法将列表拆分为大小相同的较小列表。第二种方法将根据存储在列表元素中的字段值将列表拆分为较小的列表。根据方法中显示的结果,您正在寻找第二种方法,但有一些更改:


将列表作为列表而不是MapNuong返回,您的问题很不清楚,请您进一步澄清。@Luiggi Mendoza,我想将我的列表拆分为多个日期相同的列表_active@pratt如何根据Phone类的特定属性从列表中进行分组。亲爱的@Luiggi,方法getValues和方法出错。addAllphoneListVarit工作出色,只需用add替换addAll。你的答案是解决方案。非常感谢。