[英]creating a method that can remove items from an arraylist and add them to another arraylist (under certain conditions)
您好,我正在编写一个程序,该程序创建一种可以从arraylist中删除项目并将它们添加到另一个ArrayList
(在某些条件下)的方法。 这是我应该创建的方法:
一种称为giveAwayFish()
方法,该方法表示一个人将鱼退回池塘和/或将其交给其他渔民。
它会遍历此人的所有鱼(将一条鱼送走),并查看另一位渔民(将要接收鱼的一条)是否愿意保留其中的任何一条。 如果其他渔民想要任何渔具,则应将其交给该渔民。 如果渔民不愿保留鱼,则必须将这些鱼放回池塘。
我尝试写出这种方法大约一百次,但我终生无法弄清楚该怎么做。 我能够从人员阵列中删除所有鱼,但不知道如何将它们重新添加。 这是我需要帮助的。
这是我的代码,如果有帮助的话:
import java.util.*;
public class Fisher
{
private String name;
private Fish [] fishCaught;
private int numFishCaught;
private int keepSize;
public static int LIMIT = 10;
public String getName()
{
return this.name;
}
public int getNumFishCaught()
{
return this.numFishCaught;
}
public int getKeepSize()
{
return this.keepSize;
}
public Fisher(String n, int k)
{
name = n;
keepSize = k;
}
public String toString()
{
return(this.name + " with " + this.numFishCaught + " fish as follows:");
}
private ArrayList<Fish> fishesCaught = new ArrayList<Fish>();
public void keep(Fish fish)
{
if(this.numFishCaught < LIMIT)
{
fishesCaught.add(fish);
numFishCaught++;
}
}
public boolean likes(Fish fish)
{
if(fish.size >= this.keepSize && fish.species != "Sunfish")
{
return true;
}
else
{
return false;
}
}
public void listFish()
{
System.out.println(this.toString());
for(Fish fish : fishesCaught)
{
System.out.println(fish.toString());
}
}
public void goFishingIn(Pond pond)
{
Fish fish = pond.catchAFish();
if(likes(fish))
{
this.keep(fish);
}
else
{
pond.add(fish);
}
}
public void giveAwayFish(Fisher fisher, Pond pond)
{
Fish fish = fishesCaught;
if(fisher.likes(fish))
{
fishesCaught.clear();
this.numFishCaught = 0;
}
}
}
这里最大的问题是(是的,还有很多其他问题),在您的giveAwayFish()
,您编写了
Fish fish = fishesCaught;
但是fishesCaught
是List<Fish>
。 那甚至无法编译。
我相信您要执行的操作类似于(在伪代码中):
for (Fish fish : fishesCaught) {
if (fisher.like(fish)) {
fisher.keep(fish);
} else {
pond.addFish(fish);
}
}
fishesCaught.clear();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.