Java: как вы записываете / считываете из списка, который был возвращен из метода?

#java

#java

Вопрос:

У меня есть массив и метод для создания списка из значений в массиве.

     public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);    
    System.out.println("enter all names separated by commas");
    String allNames = scanner.nextLine();
    String[] letters = {"a", "b", "c", "d"};;
    convertToList(letters);       
}


public static ArrayList<String> convertToList(String [] array) { 
    ArrayList<String> outputList = new ArrayList<>();
    for (int i = 0; i<array.length; i  ) {
        outputList.add(array[i]);
    }
    return outputList;
}

  

Теперь, если я хочу распечатать строку из outputList или добавить к ней новую строку в основном методе, как мне это сделать?

Ответ №1:

 public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);    
    System.out.println("enter all names separated by commas");
    String allNames = scanner.nextLine();
    String[] letters = {"a", "b", "c", "d"};

    ArrayList<String> myList = convertToList(letters);
    // prints "a"
    System.out.println(myList.get(0));
    // add
    myList.add("e");
}
  

Ответ №2:

 ArrayList<String> myList = convertToList(letters);
  

И затем вы можете читать, используя :

 myList.get(index)
  

Ответ №3:

Вы можете использовать ArrayList в качестве возвращаемого типа ArrayList для данного метода

     ArrayList<String> list = convertToList(letters); 
    list.get(0); //a
    list.add("e"); //add another string
    System.out.println(list); //output:- a b c d e f 
    
  

Ответ №4:

 public class Foo {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("enter all names separated by commas");
        List<String> names = convertToList(scan.nextLine().split(","));

        System.out.println();
        print(names);

        names.add("John Doe");
        System.out.println();
        print(names);
    }

    public static List<String> convertToList(String[] names) {
        return Arrays.asList(names);
    }

    private static void print(List<String> names) {
        for (String name : names)
            System.out.println(name);
    }

}