2016-11-07 4 views
0

다른 클래스의 메서드를 호출하고 있습니다. 메서드는 정수 배열을 포함합니다. 색인을 수동으로 입력하지 않으려 고합니다.배열의 다른 클래스에서 메서드 호출

범위 내의 숫자를 검색하려고합니다.

예 : ArrayList를 {1,5}, {5,10}, {10, 15}

입력 범위 :

출력 이내에 번호를 검색 : 3

프로세스 입력 : 1,5

드라이버 클래스는 Numbers라는 Array 클래스의 객체를 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(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)); 
    } 
} 

편집 : 나는 몇 가지 말로 내가 어떻게해야 생각의 코드를 수정하는 방법을 변경.

+0

형식 코드를 올바르게에 의해 들여 쓰기 - 지금 제시하는 방식은 잘못된 코딩의 한 예입니다. –

+0

귀하의 질문도 구조적으로 잘못 작성된 것으로 간주됩니다. 'class'와 같은 중요한 클래스를 포함하고'ListArray'는 무엇입니까? –

+0

나는 말로 표현한 방식을 편집했다. 희망은 지금 더 의미가 있습니다. 그렇지 않다면 지적하고 해결하도록 노력할 것입니다. – Touchpad

답변

1

아래의 코드는 작동하지만 색인을 입력하면 코드를 잘못 입력한다고 생각합니다. getNumber의 배열 길이를 모른 채 getNumber 메서드에서 배열을 출력하는 방법을 알고 싶습니다.

(: 당신이 당신의 첫 번째 요소와 배열의 두 번째 요소에 배열 indexes와 검증을하지 않으려면

것은, 당신은 당신 Numbersclass 다음과 같이 수정하여 문제를 해결할 수 1)이 개 int 변수 구성원 (정의 현재, 당신은 단지 하나의)

(2) 범위

(3) 재정를 검증하는 방법 isInLimits(int input) 추가() 문자열로

숫자 클래스 개체를 인쇄하는 데 사용 될 수있는 (수정) : 숫자 클래스의

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+"}"; 
     } 
    } 

사용법 :

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); 
      } 
     } 
    } 
관련 문제