公共静态ArrayList获取与循环
问题描述:
我是新来的Java和我卡在一个点,我应该完成一个静态ArrayList方法;我必须使用for循环。我试图问几个人,但我根本不明白该怎么做。公共静态ArrayList获取与循环
它看起来像这样(我应该去完成它)
public static ArrayList<Message> getMessagesTo(Person recipient) {
ArrayList<Message> allMessages = getMessages();
return allMessages;
}
,到目前为止,我所做的就是这个
public static ArrayList<Message> getMessagesTo(Person recipient) {
ArrayList<Message> allMessages = getMessages();
for(Message message : allMessages) {
System.out.println(message.getMessageBody());
if(message.getRecipient().getName().equals(recipient)) {
getMessagesTo(recipient);
}
return allMessages;
(BlueJ的),然后说:“缺少return语句“但我知道我的错误在这个部分:
if(message.getRecipient().getName().equals(recipient)) {
getMessagesTo(recipient);
}
答
你几乎在那里,你只需要定义一个ArrayList
,添加元素,并返回它,如:
public static ArrayList<Message> getMessagesTo(Person recipient) {
ArrayList<Message> allMessages = getMessages();
ArrayList<Message> messagesToPerson = new ArrayList<Message>();
for(Message message : allMessages) {
System.out.println(message.getMessageBody());
if(message.getRecipient().getName().equals(recipient)) {
messagesToPerson.add(message);
}
}
return messagesToPerson;
答
看来,你在你的代码所缺少几个支架
public static ArrayList<Message> getMessagesTo(Person recipient) {
ArrayList<Message> allMessages = getMessages();
for(Message message : allMessages) {
System.out.println(message.getMessageBody());
if(message.getRecipient().getName().equals(recipient)) {
getMessagesTo(recipient);
}
}
return allMessages;
}
+0
为什么不是它的'if(message.getRecipient()。getName()。equals(recipient.getName()))' – Omore
+0
是的,这是正确的比较两个.getName() – Franklin216
[在什么情况下我可以补充“紧急”或其他类似短语到我的问题,为了获得更快的答案?](https://meta.*.com/q/326569/3788176) –
你具体是指“静态ArrayList的方法”,你是什么意思必须处理循环? –
看起来你错过了if语句中的'}' –