2017-04-23 3 views
-1

내 문제는 Element 클래스에서 getSymbol이 필요하다는 것입니다. 보통 PeriodicTable에 다음과 같이 객체를 설정합니다. Element e = new Element(); 그런 다음 비교를 위해 method 내에서 e.getSymbol을 사용하십시오.한 클래스를 다른 클래스로 전달하는 방법

첫 번째 작업을 완료하고 전체 요소 목록을 인쇄하려면 다음과 같이 PeriodicTable 내에 배열을 선언했습니다. Element [] objects = new Element [ARRAY_SIZE]; 전체 요소 목록을 실행하므로 올바르게 선언 한 것 같습니다.

다시, PeriodicTable의 getSymbol 메소드에 문제가 발생했습니다. 유용한 제안 사항이 있으십니까?

이 방법의 경우 사용자는 요소에 대한 기호를 입력합니다. 메서드는 요소를 검색하고 배열에서 해당 인덱스를 반환합니다. 그런 다음이 인덱스를 사용하여 Element 클래스의 toString 메서드를 사용하여 단일 요소 및 기타 모든 정보를 표시합니다.

public int searchBySymbol(String sym) 
    {  
     int index = 0; 
     boolean found = false; 

     for (int i = 0; i < objects.length; i++) 
     { 
      objects[i] = objects.getSymbol; 
     } 
     while (index < objects.length && !found) 
     { 
      if (objects[index].equals(sym)) 
      { 
       found = true; 
      } 
      else 
      { 
       index++; 
      } 
     }  
     if(found) 
     { 
      System.out.println("Found at position: " + index); 
      System.out.println(objects[index].toString()); 
     } 
     else 
     { 
      System.out.println("Not found"); 
     }  
    } 
+0

설명하는 대신 코드를 보여주십시오. 당신을 도우는 것이 훨씬 쉬울 것입니다! –

+0

내가 시도했지만 VPN에있어 복사가되지 않습니다. 어쩌면 VPN에 여기에 로그인하면 .... 시도 할 것입니다. – KitKat2

+0

이 방법의 경우 사용자는 요소에 대한 기호를 입력합니다. 메서드는 요소를 검색하고 배열에서 해당 인덱스를 반환합니다. 그런 다음이 인덱스를 사용하여 Element 클래스의 toString 메서드를 사용하여 단일 요소 및 기타 모든 정보를 표시합니다. – KitKat2

답변

-1

당신은 확실히 모두가 처음에 두 개의 루프가 필요하지 않습니다,이 두 가지 솔루션이 있습니다

  1. (권장) 기호로 요소를 검색하는 것은의 주요 방법이 될 경우 요소를 찾으려면 요소 배열이 아닌 데이터가 포함되도록 HashMap을 사용하는 것이 좋습니다. 예를 들어 HashMaps는 key으로 객체를 찾을 수 있습니다. HashMap<String, Element>. HashMap API를 조회하거나 예 확인 : 오히려 필드를 얻고 비교하는 두 개의 루프를 사용하는 것보다 http://beginnersbook.com/2013/12/hashmap-in-java-with-example/

  2. (빠른 수정), 자바에서 그러한 getSymbol (같은 접근 방법을 정의)과 필드를 반환하는 좋은 방법입니다 직접 액세스하는 것이 아닙니다. ... 당신이에 코드를 단순화 할 수 있습니다이 방법을 사용

    for (Element e : objects) { 
        if (e.getSymbol().equals(sym) { 
        return true; 
        } 
    } 
    //return false after the loop omits the need for an explicit boolean variable` 
    

편집 : 보통 루프 인덱스 액세스를 구성. 인덱스 번호는 본질적으로 iterator 변수 int i에 의해 추적되므로 추적하기 위해 별도의 변수가 필요하지 않습니다.

for (int i = 0; i < objects.length; i++) { 
    if (objects[i].getSymbol().equals(sym)) { 
     //print i to show index number 
     //print objects[i].toString(); 
     return true; 
    } 
} 
//print not found... 
return false; 
+0

그렇다면 심볼의 인덱스를 반환하고 인덱스를 사용하여 나머지 정보를 반환하도록 코드를 작성하면됩니다. 요소에 대해 ?? – KitKat2

+0

예 - 색인이 필요한 경우 일반적인 for 루프를 사용하면 더 쉽게 읽을 수 있고, 내 게시물을 편집하고 다른 예제를 추가했습니다. – PandaK

관련 문제