#java #time #arraylist #point
#java #время #arraylist #точка
Вопрос:
Каков наилучший способ отслеживать время, когда точка была помещена в arraylist, чтобы они удалялись по истечении срока их действия?
ArrayList<Point> path=new ArrayList<Point>();
path.add(new Point( 1, 1)// time=1
path.add(new Point( 2,2)// time=2
path.add(new Point(3,3) //time=3
поэтому, если время становится 4, любые точки, которые были введены до этого, истекли и могут быть удалены
Комментарии:
1. Вы не имеете в виду
path.add(new Point(1,1));
и т.д.?
Ответ №1:
Вместо того, чтобы иметь an ArrayList<Point>
, рассмотрим a LinkedList<PointAndTime>
. LinkedList
Будет более эффективно удалять элементы с самого начала, и вам нужно сохранить как точку, так и время, поэтому объедините их в один и тот же тип.
Комментарии:
1. Разве ArrayDeque не был бы более эффективным, чем оба из них?
Ответ №2:
Оберните Point
объект и time
поле в другой объект. Можно было бы назвать что-то вроде PointWithTime
.. и т.д.
Затем добавьте их в свои ArrayList
объекты вместо Point
объектов.