ArrayList调用方法

时间:2017-12-19 00:32:14

标签: java arraylist

import acm.program.*;
import java.util.*;


public class ReverseArrayList extends ConsoleProgram {

    public void run() {
        println("This program reverses the elements in an ArrayList.");
        println("Use 0 to signal the end of the list.");
        ArrayList<Integer> list = readArrayList();
        reverseArrayList(list);
        printArrayList(list);
    }

/* Reads the data into the list */
    private ArrayList<Integer> readArrayList() {
        ArrayList<Integer> list = new ArrayList<Integer>();
        while (true) {
            int value = readInt(" ? ");
            if (value == 0) break;
            list.add(value);
        }
        return list;
    }

我不明白以下代码:

ArrayList<Integer> list = readArrayList();

我不明白为什么我不能做以下事情:

list.getInput();

为什么我需要使ArrayList等于该方法,这让我感到困惑,因为现在我不确定每当我想在java中调用一个方法时需要哪种方式

2 个答案:

答案 0 :(得分:0)

您的代码显示方法getInput()不会将 ArrayList 作为参数,而是返回它。

是合理的
Arrlist=getInput()

正确的语法是,您将返回的 ArrayList getInput()分配给Arrlist。而另一方面,

Arrlist.getInput()

表示必须在 ArrayList Class 或其中一个超类中实现的方法,在您的情况下不是这样。我建议修改 OOP 概念。

答案 1 :(得分:0)

您可以传递它的一种方法是使用构造函数。我嘲笑了同样的工作代码。

import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class ArrayListExample {

  ArrayList<Integer> ofNumbers;

  public ArrayListExample() {
     ofNumbers = new ArrayList<>();
     createArray();

  }

  private void createArray(){
      ofNumbers = IntStream.range(0, 10)
            .boxed()
            .collect(Collectors
            .toCollection(ArrayList::new));
  }

  public ArrayList<Integer> getInput() {

    return ofNumbers;
  }

 public void getArray() {

    ArrayList<Integer> newList = new ArrayList<>(ofNumbers);

    for (Integer num : newList) {
        System.out.println(num);
    }

  }
}

我也同意安德鲁。坚持下去,通过多一点练习,这将成为你的第二天性。