【问题标题】:Create a method for inputting objects in an ArrayList创建用于在 ArrayList 中输入对象的方法
【发布时间】:2021-05-23 06:35:41
【问题描述】:

我的任务是创建一个方法,该方法包含与已为我的对象创建的构造函数相同的变量,我已将其中 3 个添加到 ArrayList。

当在我的所有代码所在的主类中调用该方法时,我应该在 () 中写入我想要附加到新对象的信息,稍后将通过相同的方法将其添加到 ArrayList .

下面是我的代码的 sn-ps...

public class Joke extends Main {
public String username;
public String email;
public String firstName;
public String lastName;
public String phoneNumber;
public int jokeID;
public String jokeText;

public Joke(String username, String email, String firstName, String lastName, String phoneNumber, int jokeID, String jokeText) {
    this.username = username;
    this.email = email;
    this.firstName = firstName;
    this.lastName = lastName;
    this.phoneNumber = phoneNumber;
    this.jokeID = jokeID;
    this.jokeText = jokeText;
}

这就是我想出的方法

public static Joke addJokerToArrayList(String username, String email, String firstName, String lastName,
                                       String phoneNumber, int jokeID, String jokeText) {
    Joke joker4 = new Joke("", "", "", "", "", 4, "");
    System.out.println("Успешно добавихте Joke.");
    return joker4;
}

...我认为它不起作用... 以上代码位于Joke类中。

在我的主课中,我有:

package com.company;

import java.util.ArrayList;

public class Main {

    public static ArrayList<Joke> jokes;

    public static void main(String[] args) {


        Joke joker1 = new Joke("kartof23", "alfakartof23@hotmail.com", "Gregory", "Petrov",
                "0899458239", 1, "This is the funniest thing I have ever written!");
        Joke joker2 = new Joke("kalashnikov94", "kalashnikov94@hotmail.com", "Kliment", "Panaiotov",
                "0896482123", 2, "Never got that what i never got!");
        Joke joker3 = new Joke("haralampi45", "haralampi45@abv.bg", "Jordan", "Krumov",
                "0897439457", 3, "That lucky dog was actually a GOD!");

        jokes = new ArrayList<>();
        jokes.add(joker1);
        jokes.add(joker2);
        jokes.add(joker3);

        System.out.println();
        Joke.addJokerToArrayList("kamikadze23", "kamikadze23@gmail.com", "Liubomir", "Kirilov",
                "0874593204", 4, "Не би мирно седяло, не би чудо видяло..."); // <-- I am not sure if this is adding joker4 to the Array jokes.
    }

}

【问题讨论】:

  • 是什么让你认为Joke.addJokerToArrayList 可能会在jokes ArrayList 中添加任何东西,而该方法的主体没有这样做,Joke 的构造函数和你也没有这样做已经知道如何将对象添加到列表中,就像使用joker1 2 和3 一样?我不是想不愉快,我想了解你有什么误解。

标签: java object arraylist methods output


【解决方案1】:
public static Joke addJokerToArrayList(String username, String email, String firstName, String lastName,
                                       String phoneNumber, int jokeID, String jokeText) {
    Joke joker4 = new Joke("", "", "", "", "", 4, "");
    System.out.println("Успешно добавихте Joke.");
Main.jokes.add(joker4);////this line would add the joker to the array list
    return joker4;
}

Main.jokes.add(joker4); Main 获取类,因为笑话是静态的,所以它获取变量并且 .add(joker4) 将笑话添加到数组列表中。

【讨论】:

    【解决方案2】:

    列表jokes 不在Joke 类中。您必须将返回的Joke 实例添加到列表中。

    jokes.add(Joke.addJokerToArrayList(....));
    

    另外,在你的addJokerToArrayList 方法中,我不知道你为什么不使用传递的值。应该是这样的,

    return new Joke(username, email, firstName, lastName, phoneNumber, jokeId, jokeText);
    

    【讨论】:

      【解决方案3】:

      代码审查:这是原始代码的重构工作版本:

      public static ArrayList<Joke> jokes = new ArrayList<>();
      
      public static void main(String[] args) {
          addJokerToArrayList("kartof23",
                  "alfakartof23@hotmail.com",
                  "Gregory",
                  "Petrov",
                  "0899458239",
                  1,
                  "This is the funniest thing I have ever written!");
          addJokerToArrayList("kalashnikov94",
                  "kalashnikov94@hotmail.com",
                  "Kliment",
                  "Panaiotov",
                  "0896482123",
                  2,
                  "Never got that what i never got!");
          addJokerToArrayList("haralampi45",
                  "haralampi45@abv.bg",
                  "Jordan",
                  "Krumov",
                  "0897439457",
                  3,
                  "That lucky dog was actually a GOD!");
      
          // output
          jokes.forEach(System.out::println);
      }
      
      public static Joke addJokerToArrayList(String username,
                                             String email,
                                             String firstName,
                                             String lastName,
                                             String phoneNumber,
                                             int jokeID,
                                             String jokeText) {
          Joke joke = new Joke(username, email, firstName,
                  lastName, phoneNumber, jokeID, jokeText);
          if (jokes.add(joke)) {
              System.out.println("Успешно добавихте Joke.");
          }
          return joke;
      }
      
      public static class Joke {
          public String username;
          public String email;
          public String firstName;
          public String lastName;
          public String phoneNumber;
          public int jokeID;
          public String jokeText;
      
          public Joke(String username, String email,
                      String firstName, String lastName,
                      String phoneNumber, int jokeID, String jokeText) {
              this.username = username;
              this.email = email;
              this.firstName = firstName;
              this.lastName = lastName;
              this.phoneNumber = phoneNumber;
              this.jokeID = jokeID;
              this.jokeText = jokeText;
          }
      
          @Override
          public String toString() {
              return "Joke{" +
                      "username='" + username + '\'' +
                      ", email='" + email + '\'' +
                      ", firstName='" + firstName + '\'' +
                      ", lastName='" + lastName + '\'' +
                      ", phoneNumber='" + phoneNumber + '\'' +
                      ", jokeID=" + jokeID +
                      ", jokeText='" + jokeText + '\'' +
                      '}';
          }
      }
      

      输出:

      Успешно добавихте Joke.
      Успешно добавихте Joke.
      Успешно добавихте Joke.
      Joke{username='kartof23', email='alfakartof23@hotmail.com', firstName='Gregory', lastName='Petrov', phoneNumber='0899458239', jokeID=1, jokeText='This is the funniest thing I have ever written!'}
      Joke{username='kalashnikov94', email='kalashnikov94@hotmail.com', firstName='Kliment', lastName='Panaiotov', phoneNumber='0896482123', jokeID=2, jokeText='Never got that what i never got!'}
      Joke{username='haralampi45', email='haralampi45@abv.bg', firstName='Jordan', lastName='Krumov', phoneNumber='0897439457', jokeID=3, jokeText='That lucky dog was actually a GOD!'}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-21
        • 1970-01-01
        • 2015-12-16
        • 2011-04-28
        • 2020-03-21
        • 1970-01-01
        • 2011-09-04
        相关资源
        最近更新 更多