从另一个属于数组的类调用方法

时间:2016-11-07 05:39:39

标签: java arrays

我正在调用另一个类的方法。该方法包含一个整数数组。我试图远离手动输入索引。

我正在尝试搜索范围内的数字。

例如: ArrayList:{1,5},{5,10},{10,15}

输入:输入3

处理:搜索范围内的数字

输出:1,5

驱动程序类将名为Numbers的主类中的对象存储到ArrayList中。主类有一个访问者调用getNumbers。 getNumbers包含一个包含2个元素的整数数组。驱动程序调用getNumbers来验证用户输入的条目。

下面的代码可行,但我告诉它考虑编码输入索引的编码错误。我想知道如何在不知道getNumber的数组长度的情况下从getNumber方法输出数组?

我拥有的例子:

for(int i = 0; i < example.size(); i++) 
         //number is the integer that is inputted.
         if(example.get(i).getNumbers()[1] > number &&
         example.get(i).getNumbers()[0] <= numbers)
            System.out.println(example.get(i));

我应该添加另一个for循环吗?

我在考虑的例子:

for(int i = 0; i < example.size(); i++)
    for(int j = 0; j < example.get(i).getNumbers.length; j++){
         if(example.get(i).getNumbers()[j] > number &&
         example.get(i).getNumbers()[j] <= numbers)
            System.out.println(example.get(i));
  }
}

编辑:改变了我的措辞,并修改了我认为应该做的代码。

1 个答案:

答案 0 :(得分:1)

  

下面的代码可以工作,但我被告知它认为代码编码不好   输入索引。我想知道如何从中输出数组   getNumber方法不知道getNumber的数组长度?

如果您不想对阵列中的第一个元素和第二个元素使用数组indexes进行验证,那么您可以通过修改Numbers class来解决问题如下图所示:

(1)定义两个int变量成员(目前只有一个)

(2)添加方法isInLimits(int input)以验证范围

(3)覆盖toString(),可用于将对象打印为String

Numbers class(已修改):

public static class Numbers {

        private int firstElement;
        private int secondElement;

        public int getFirstElement() {
            return firstElement;
        }
        public void setFirstElement(int firstElement) {
            this.firstElement = firstElement;
        }
        public int getSecondElement() {
            return secondElement;
        }
        public void setSecondElement(int secondElement) {
            this.secondElement = secondElement;
        }

        //checks the input is in the range of this object elements
        public boolean isInLimits(int input) {
            if(input >= firstElement && input < secondElement) {
                return true;
            } else {
                return false;
            }
        }

        @Override
        public String toString() {
            return "{"+firstElement+","+secondElement+"}";
        }
    }

使用Numbers类:

public static void main(String[] args) {

      int userInput = 10; //get it from user 

      List<Numbers> example = new ArrayList<>();
      //Add Numbers objects to example list

       for(int i=0;i< example.size();i++) {
            Number numberTemp = example.get(i);
            //call Numbers object's isInLimits
            if(numberTemp.isInLimits(userInput)) {
                System.out.println(numberTemp);
            }
        }
    }
相关问题