У меня есть класс под названием Keypoints, и я хочу создать список массивов, в котором хранятся различные объекты ключевых точек. Это, как я decalred и инициализирую список ключевых точек:Доступ к случайному элементу массива дает те же результаты
private static List<Keypoint> m_keyPoints = new ArrayList<Keypoint>();
так в моих кодах, у меня есть цикл, который добавляет ключевые точки объектов в список:
for(xi=0;xi<width;xi++)
{
for(yi=0;yi<height;yi++)
{
/*Calculation for scale,mag,orien*/
// Save this keypoint into the list
Keypoint kp =new Keypoint(xi*scale/2, yi*scale/2, mag, orien, i*m_numIntervals+j-1);
m_keyPoints.add(kp);
}
}
Но теперь, когда я пытаюсь доступ к случайному элементу из списка, я всегда получаю одинаковые результаты.
for(int ikp = 0;ikp<m_numKeypoints;ikp++)
{
Keypoint key =m_keyPoints.get(ikp);
int scale = key.s();
float kpxi = key.xi();
float kpyi = key.yi();
}
Я подвожу то же значение масштаба, kpxi и kpyi для каждого элемента в списке, хотя я очень уверен, что каждое значение отличается. Вместо этого он возвращает последний объект в списке. Итак, мой вопрос: я делаю это неправильно, когда дело доходит до добавления объекта в список или это проблема с моим классом keypoint? или это совсем другое?
Ниже класс для Keypoint
import java.util.List;
public class Keypoint {
public float xi;
public float yi;
public List<Double> orien ;
public List<Double> mag;
public int scale;
public Keypoint(){}
public Keypoint(float x, float y, List<Double> magnitude, List<Double> orientation, int s)
{
xi = x;
yi = y;
mag = magnitude;
orien = orientation;
scale = s;
}
public static float xi()
{
return xi;
}
public static float yi()
{
return yi;
}
public static int s()
{
return scale;
}
public static List<Double> mag()
{
return mag;
}
public static List<Double> orien()
{
return mag;
}
}
Покажите нам цикл добавления – BobTheBuilder
@baraky Это просто цикл for, который проходит через вычисления xi и yi для вычисления параметров для различных параметров для конструктора Keypoint. – user1926691
Как у вас есть статический геттер для нестатического поля? –