Java 放置集合的内容<;对象>;排列

Java 放置集合的内容<;对象>;排列,java,Java,我相信这很容易。我只想将for循环之后的集合转储到类型为Role 这就是我得到的: Role[] hotRoles; Set <Role> roles = profile.getRoles(Section); for (Role role : roles ) { if( role.getName().contains("PART") && !role.getName().contains("READ_ONLY") )

我相信这很容易。我只想将for循环之后的集合转储到类型为
Role

这就是我得到的:

Role[] hotRoles; 
Set <Role> roles = profile.getRoles(Section);

    for (Role role : roles  )
    {
        if( role.getName().contains("PART") && !role.getName().contains("READ_ONLY") ) 
        {
        System.out.println("Role: " + role.getName());
        }
    }
Role[]热角色;
Set roles=profile.getRoles(节);
for(角色:角色)
{
if(role.getName()包含(“部分”)&&!role.getName()包含(“只读”))
{
System.out.println(“角色:“+Role.getName());
}
}
我想将从for循环返回的值放入
hotPartRoles


谢谢……

我假设您只希望打印的元素进入阵列

您必须动态地执行此操作,因为您事先不知道将有多少元素

差不多

List<Role> hotRoles = new ArrayList<Role>();
for(Role role : roles) {
  if(...) {
    hotRoles.add(role);
    ...
  }
}
hotPartRoles = hotRoles.toArray(new Role[hotRoles.size()]);
List hotRoles=new ArrayList();
for(角色:角色){
如果(…){
添加(角色);
...
}
}
hotPartRoles=hotRoles.toArray(新角色[hotRoles.size()]);

我假设您只希望打印的元素进入数组

您必须动态地执行此操作,因为您事先不知道将有多少元素

差不多

List<Role> hotRoles = new ArrayList<Role>();
for(Role role : roles) {
  if(...) {
    hotRoles.add(role);
    ...
  }
}
hotPartRoles = hotRoles.toArray(new Role[hotRoles.size()]);
List hotRoles=new ArrayList();
for(角色:角色){
如果(…){
添加(角色);
...
}
}
hotPartRoles=hotRoles.toArray(新角色[hotRoles.size()]);

hotRoles.size()
不是必需的,
hotRoles.toArray(新角色[0])
也可以工作,数组将自动调整大小这是一个偏好问题——我更喜欢这种方法,因为它不分配然后立即丢弃长度
0
角色[]
,而且不需要反射性地分配新数组。@LouisWasserman谢谢,我从未检查过
toArray()
是如何实际实现的,很高兴知道
hotRoles.size()不是必需的,
hotRoles.toArray(新角色[0])
也可以工作,数组将自动调整大小这是一个偏好问题——我更喜欢这种方法,因为它不分配然后立即丢弃长度为
0
角色[]
,也不需要反射性地分配新数组。@LouisWasserman谢谢,我从未检查过
toArray()
是如何实际实现的,很高兴知道