Java:添加到列表列表中

Java:添加到列表列表中,java,list,Java,List,考虑以下声明 列表组 我可以通过说groups.add(newperson(John)),来添加到这个列表中 有什么方法可以添加到内部列表而不是外部列表中吗?事实上,您不能添加组 你可以做: ArrayList<Person> t = new ArrayList<Person>(); t.add(new Person()); groups.add(t) ArrayList t=new ArrayList(); t、 添加(新人员()); 组。添加(t) 实际上你不能做分

考虑以下声明

列表组

我可以通过说
groups.add(newperson(John)),来添加到这个列表中


有什么方法可以添加到内部列表而不是外部列表中吗?

事实上,您不能添加组

你可以做:

ArrayList<Person> t = new ArrayList<Person>();
t.add(new Person());
groups.add(t)
ArrayList t=new ArrayList();
t、 添加(新人员());
组。添加(t)

实际上你不能做
分组。添加(新人(约翰))

你可以做:

ArrayList<Person> t = new ArrayList<Person>();
t.add(new Person());
groups.add(t)
ArrayList t=new ArrayList();
t、 添加(新人员());
组。添加(t)
列表组
基本上是说列表中的每个项目都是
人的列表

这意味着,为了向列表中添加
人员
,您需要首先为要添加的元素创建
列表

List<Person> person = //...
groups.add(person);
例如

Map<String, List<Person>> groups = new HashMap<>();
List<Person> persons = groups.get("family");
if (persons == null) {
    persons = new ArrayList<>(25);
    groups.put("family", persons);
}
persons.add(aPerson);
根据评论更新

Map
可能是对类似项进行“分组”的更好解决方案,例如

Map<String, List<Person>> groups = new HashMap<>();
List<Person> persons = groups.get("family");
if (persons == null) {
    persons = new ArrayList<>(25);
    groups.put("family", persons);
}
persons.add(aPerson);
Map groups=newhashmap();
列出人员=组。获取(“家庭”);
if(persons==null){
人员=新阵列列表(25);
组。put(“家庭”,个人);
}
人。加(人);
这是一个非常基本的示例,但有助于您入门……浏览列表组也可能会有所帮助
基本上是说列表中的每个项目都是
人的列表

这意味着,为了向列表中添加
人员
,您需要首先为要添加的元素创建
列表

List<Person> person = //...
groups.add(person);
例如

Map<String, List<Person>> groups = new HashMap<>();
List<Person> persons = groups.get("family");
if (persons == null) {
    persons = new ArrayList<>(25);
    groups.put("family", persons);
}
persons.add(aPerson);
根据评论更新

Map
可能是对类似项进行“分组”的更好解决方案,例如

Map<String, List<Person>> groups = new HashMap<>();
List<Person> persons = groups.get("family");
if (persons == null) {
    persons = new ArrayList<>(25);
    groups.put("family", persons);
}
persons.add(aPerson);
Map groups=newhashmap();
列出人员=组。获取(“家庭”);
if(persons==null){
人员=新阵列列表(25);
组。put(“家庭”,个人);
}
人。加(人);
这是一个非常基本的示例,但有助于您入门…浏览列表组也可能对
列表组有所帮助您不能进行
分组。添加(新人(约翰))因为
是一个
列表
而不是
列表

您需要的是获取并添加

List<List<Person>> groups;
//add to group-1
groups = new ArrayList<List<Person>>();
//add a person to group-1
groups.get(0).add(new Person());

//Or alternatively manage groups as Map so IMHO group fetching would be more explicit 
Map<String, List<Person>> groups;
//create new group => students, 
groups = new HashMap<String, List<Person>>();//can always use numbers though
groups.put("students", new ArrayList<Person>());

//add to students group
groups.get("students").add(new Person());
列表组;
//添加到第1组
groups=newarraylist();
//将一个人添加到第1组
groups.get(0).add(newperson());
//或者作为映射管理组,这样IMHO组获取将更加明确
地图组;
//创建新组=>学生,
groups=newhashmap()//不过我可以用数字
组。放置(“学生”,新ArrayList());
//添加到学生组
groups.get(“学生”).add(newperson());
列表组您不能进行
分组。添加(新人(约翰))因为
是一个
列表
而不是
列表

您需要的是获取并添加

List<List<Person>> groups;
//add to group-1
groups = new ArrayList<List<Person>>();
//add a person to group-1
groups.get(0).add(new Person());

//Or alternatively manage groups as Map so IMHO group fetching would be more explicit 
Map<String, List<Person>> groups;
//create new group => students, 
groups = new HashMap<String, List<Person>>();//can always use numbers though
groups.put("students", new ArrayList<Person>());

//add to students group
groups.get("students").add(new Person());
列表组;
//添加到第1组
groups=newarraylist();
//将一个人添加到第1组
groups.get(0).add(newperson());
//或者作为映射管理组,这样IMHO组获取将更加明确
地图组;
//创建新组=>学生,
groups=newhashmap()//不过我可以用数字
组。放置(“学生”,新ArrayList());
//添加到学生组
groups.get(“学生”).add(newperson());

您可以定义一个通用的双列表类来完成这项工作。显然,如果您有某些业务逻辑,可以帮助您在内部确定要添加到哪个列表(而不提供索引),那么您可以扩展此功能

import java.util.*;
公共类双重名单
{
私人名单;
公开双重名单()
{
列表=新的ArrayList();
}
public int getOuterCount()
{
返回list.size();
}
公共整数getInnerCount(整数索引)
{
如果(索引while(list.size()您可以定义一个通用的double list类来为您执行此操作。显然,如果您有某些业务逻辑可以帮助您在内部确定要添加到哪个列表(而不提供索引),则可以扩展此类

import java.util.*;
公共类双重名单
{
私人名单;
公开双重名单()
{
列表=新的ArrayList();
}
public int getOuterCount()
{
返回list.size();
}
公共整数getInnerCount(整数索引)
{
如果(索引while(list.size()创建一个
列表
,向其中添加一个人,将其添加到另一个
列表
。我可以不创建另一个列表而执行此操作吗?我只想能够说
组。
等,然后添加一个新的人员列表或向现有人员列表添加更多人员。您有一个
列表
列表
。您需要创建一个n新建
List
并执行
groups.add(newlist)
。然后可以直接添加到
newlist.add(new Person())
,或者通过从外部
列表中获取引用作为
groups.get(0).add(new Person())
@PM
add
方法返回一个
boolean
。您可以创建一个匿名的内部类来添加元素。对于一行的
groups.add((new ArrayList(){{add(new Person(“John”);}}));
但是这是一个非常糟糕的主意。请尝试
groups.add(new ArrayList(Arrays.asList(new Person(“John”));
创建一个
列表
,向其中添加一个人,然后将其添加到另一个
列表
。我可以不创建另一个列表而执行此操作吗?我只想能够