小编Spa*_*tel的帖子

将对象添加到列表

我有一个Buildingrooms属性的类List:

private List<Room> rooms;
Run Code Online (Sandbox Code Playgroud)

我写了以下方法来向列表中添加一个房间:

public void addRoom(Room room) {
        this.rooms.add(room);
    }
Run Code Online (Sandbox Code Playgroud)

此代码不会立即引发异常,但房间不会添加到列表中.此外,在迭代中调用该方法,在从addRoom方法返回到此迭代之后,跳过下一次迭代,然后NullPointerException引发a.

我正在从文件创建Room对象.以下是我调用该方法的方法:

Room newRoom = new Room();
newRoom.setName(meetingRoom[0]);
newRoom.setCode(meetingRoom[1]);
few more setters ...
home.addRoom(newRoom);
Run Code Online (Sandbox Code Playgroud)

home是之前通过另一种方法找到的Building的实例,根据调试器它的值是可以的.

java

2
推荐指数
1
解决办法
41
查看次数

带有对象的ArrayList

我有一个ArrayList,里面填充了名为projectsCurrent的对象"Project".每个项目都有自己的名字,州,manDays等.

我想遍历这个列表和每个项目检查if (manDaysDone >= manDays).如果确实如此,那么比项目完成并且我想要更改其状态,将其从列表中删除并将其添加到另一个(projectsDone).

当我尝试使用Iterator来实现我的目标时,似乎在迭代中丢失了当前项目的链接,例如,在此代码中,NoSuchElementException在if条件中引发了一个:

Iterator<Project> i = projectsCurrent.iterator();
while (i.hasNext()){
    if (i.next().getManDaysDone() >= i.next().getManDays()){
        i.next().setState(ProjectState.DONE);
    } 
}
Run Code Online (Sandbox Code Playgroud)

只是为了弄清楚我想要实现的目标.以下for循环完成了这项工作,但当然后来我得到了ConcurrentModificationException:

for (Project currentProject : projectsCurrent){
    if (currentProject.getManDaysDone() >= currentProject.getManDays()) {
        currentProject.setState(ProjectState.DONE);
        projectsDone.add(currentProject);
        this.budget += currentProject.getPrice();
        projectsCurrent.remove(currentProject);
    }
}
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
67
查看次数

复制名称中包含偶数的文件 - bash

我想复制 /usr/lib 中以 .X.0.0 结尾的所有文件,其中 X 是偶数。有没有比以下方法更好的方法来选择所有文件?

ls /usr/lib | grep "[02468].0.0$"
Run Code Online (Sandbox Code Playgroud)

我对这个解决方案的问题是,如果存在名称类似于“xy.800.0.0”的文件,我需要使用括号三次等。

linux bash shell

-1
推荐指数
1
解决办法
581
查看次数

标签 统计

java ×2

bash ×1

linux ×1

shell ×1