2014-12-10 8 views
-1

아직 Java에 익숙하지 않지만 내 arraylist에 여러 개의 새 요소를 추가하는 데 문제가 있습니다. 이 방법의 아이디어는 이름이 이미 목록에 있는지 확인하고, 그렇다면 false를 반환하고 그렇지 않으면 이름과 사람의 점수를 arraylist에 추가하는 것입니다. 추가 할 때 오류가 계속 발생합니다. 내가 추가하는 이름 부분 일 경우 추가 기능이 작동하지만 scoreOn1st를 포함하면 오류가 발생합니다.Java ArrayList에 여러 요소 추가

public ScoreBoard(String tourneyName) 
{  
    // initialize instance varable 
    this.tournament = tourneyName; 
    ArrayList<ScoreCard> board = new ArrayList<ScoreCard>(); 
} 
+1

목록 대신지도를 사용하시기 바랍니다. – BevynQ

+0

일반적으로 어떤 오류가 발생했는지 포함시키는 것이 좋습니다. 여러 번 그것이 본질적으로 명백하지 않습니다. – leigero

+0

ScoreCard 클래스는 어떻게 생겼습니까? 귀하의 생성자가 int 매개 변수를 기대하지 않는 것처럼 보이고 문자열에 대해 오버로드 된 equal() 함수가 있습니까? 내가 두 번째 BevynQ [지도] (http://tutorials.jenkov.com/java-collections/map.html) 아마 더 적합 – softwarenewbie7331

답변

0

보드는 외부 선언해야합니다

public boolean addGolfer(String name, int scoreOn1st) 
{ 
    // check if the golfer is already in the collection 
    for (int i = 0; i < board.size(); i++) 
    { 
     if (board.get(i).equals(name)) 
     { 
      return false; 
     } 
    } 

    // otherwise 

    board.add(new ScoreCard(name, scoreOn1st)); 
    return true; 
} 

이미 ArrayList를 생성 생성자 클래스입니다. 생성자 내부에서 새로 만들 수 있습니다. get! 메서드는 equals 이름을 직접 호출 할 수없는 ScoreCard 객체를 반환합니다. 생성자에서

class ScoreCard { 
    ScoreCard(String name) {//definition } //1st Constructor 
    ScoreCard(String name, int score) { //definition } //2nd Constructor 
+0

그 부분을 언급하는 것을 잊어 버렸지 만, 이미 그렇게했습니다. – Drew

+0

정확히 어떤 오류가 발생했는지 세부 정보를 제공 할 수있는 부분 –

+0

스코어 카드에는 두 필드 모두에 대해 적절한 생성자가 있습니다. –

0

기판 변수 방법 변수가 아닌 필드 :

public class ScoreBoard { 
List<ScoreCard> board; 
public ScoreBoard(String tourneyName) 
{  
    this.tournament = tourneyName; 
    this.board = new ArrayList<ScoreCard>(); 
} 

스코어 카드는 다음과 같이 될 것이다.

public ScoreBoard(String tourneyName) 
{  
    // initialize instance varable 
    this.tournament = tourneyName; 
    this.board = new ArrayList<ScoreCard>(); // I assume you have declared this field. 
}