2015-09-18 2 views
-1

Я новичок в arraylists, и я не уверен, что не так, и что делать, чтобы исправить это. Вот рабочая «потребительская кривая», которая представляет собой массив. Но «кривая производителя» представляет собой список массивов. Я не знаю, как это исправить. пожалуйста помоги.Основные проблемы с Arraylist

ConsumerCurve:

public ConsumerCurve(int np, double m, double b, int dx) 
{ 
    myConsumerCurve = new Point [np]; 

    for(int i=0; i<np; i++) 
    { 
     int x = i*dx; 
     double y = m*x+b; 
     if(y<0) throw new IllegalArgumentException(); 
     myConsumerCurve[i] = new Point (x,y); 
    } 
} 

ProducerCurve:

public ProducerCurve(int np, double m, double b, int dx) 
    { 

    for(int i=0; i<np; i++) 
    { 
     int x = i*dx; 
     double y = m*x+b; 
     if(y<0) throw new IllegalArgumentException(); 
     ArrayList<Point> myProducerCurve = new Point (x,y); 
    } 
    } 

Кроме того, я получаю сообщение об ошибке здесь, говорит индекс не может быть разрешен к переменной

public ProducerCurve() 
    { 
     Point x; 
     myProducerCurve.add(x); 
     myProducerCurve.add(index,x); 
    } 

Наконец, как Я добавляю точку в arraylist, который сначала ищет, чтобы увидеть, что точка уже вышла, а затем пузырьки сбрасывает их?

добавить():

public void add(Point p) 
{ 
    myProducerCurve.add(p); 
} 

Searchpoint:

public int searchPoint(Point p) 
{ 
    for(int index=0; index< myProducerCurve.size(); index++) 
    { 
     myProducerCurve.equals(p); 
    } 
    return -1; 
} 
+0

'Arrays.asList' или' List # toArray' ... но лучший выбор будет получите код, просто используйте 'List' – MadProgrammer

+0

Вы продолжаете говорить, что вы получаете ошибку здесь и там. Я вижу много ошибок в ваших кодах. Вы даже посмотрели на ошибки и догадались, что может быть неправильно? –

+0

@Mohammad Najar Да, у меня есть, и я не понимаю их, потому что это первый раз, когда я работаю с arraylists, поэтому я не совсем уверен, как их исправить. – retrogirl19

ответ

3

Ошибка в этой строке:

ArrayList<Point> myProducerCurve = new Point (x,y); 

Это должно быть

ArrayList<Point> myProducerCurve = new ArrayList<Point>(); 
myProducerCurve.add(new Point(x, y)); 

Это связано с системой типа Java. Вы пытаетесь instanitate myProducerCurve быть новым Point, но в действительности эта переменная построена для хранения данных в течение ArrayList из Points

+0

Это очень помогает! После исправления, что я нашел другие проблемы, я не знаю, как исправить .... см. Edit – retrogirl19

+2

@ retrogirl19 Я думаю, что есть некоторые основы ArrayLists, которые вы на самом деле не понимаете, и нет ничего плохого в этом! Сделайте несколько шагов назад и внимательно изучите все – Michael

Смежные вопросы