2015-10-14 2 views
0

Я хотел бы спросить, как найти элемент в массиве со значением переменной внутри элемента? Является ли это возможным? Если да, пожалуйста, расскажите. Предположим, у нас есть объект под названием Pt:Java - Как найти значение переменной внутри объекта, принадлежащего массиву объектов?

public class Pt { 
    private int x, y; 

    public void setCoords(int i, int j){ 
     x = i; 
     y = j; 
    } 

    public int getX(){ 
     return x; 
    } 

    public int getY(){ 
     return y; 
    } 

} 

Затем мы создаем массив объекта Pt, а также инициализирует его элементы.

Pt[] point; 
point[0].setCoords(0,0); 
point[1].setCoords(1,1); 

Проблема, с которой я сталкиваюсь сейчас, заключается в том, как найти элемент с координатами (1,1)?

+0

это легко разрешимый. дайте себе попробовать. –

+3

Я только что понял это сейчас. Я должен просто просто зациклиться на них и правильно использовать методы getX и getY? –

+0

это - одна возможность да ... –

ответ

0
public static void main(String[] args) { 

     Pt[] point = new Pt[2]; 
     Pt pt1 = new Pt(); 
     pt1.setCoords(0, 0); 
     Pt pt2 = new Pt(); 
     pt2.setCoords(1, 1); 
     point[0] = pt1; 
     point[1] = pt2; 

     getElement(point, 1, 1); // returns element with coords of (1, 1) or null if doesn't exist 

    } 

    public static Pt getElement(Pt[] point, int xCoord, int yCoord) { 
     for (int i = 0; i < point.length; i++) { 
      if (point[i].getX() == xCoord && point[i].getY() == yCoord) { 
       return point[i]; 
      } 
     } 
     return null; 
    } 
+0

Вы не используете параметры 'xCoord' и' yCoord'. – Flown

+0

@Flown - oops! Исправлена. – ferekdoley

+0

Я предполагаю, что я, вероятно, должен заполнить массив тоже ... – ferekdoley

1

Вам просто нужно пройти через массив и проверить каждый из элементов. Чтобы перебрать массив, вы можете использовать расширенный цикл.

for (Pt pt : point) { 
    if(pt.getX() == 1 && pt.getY() == 1){ 
     //what you want to do with the object... 
     break; 
    } 
} 
Смежные вопросы