Освой Processing играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Массивы имеют определённые ограничения. Для сложных задач, в которых требуется добавлять и удалять данные, лучше использовать ArrayList.
Добавьте в скетч новую вкладку (Ctrl+Shift+N для Windows) под именем MyObject. Он будет содержать класс с таким же именем.
class MyObject
{
float x;
float y;
MyObject()
{
x = random( width );
y = random( height );
}
void update()
{
y--;
}
void render()
{
ellipse( x, y, 60, 60 );
}
}
Далее в основном скетче можете использовать созданный объект.
// Объявляем список
ArrayList<MyObject> list;
void setup()
{
size( 640, 480 );
list = new ArrayList<MyObject>();
list.add(new MyObject());
list.add(new MyObject());
}
void draw()
{
background( 255 );
fill( 255, 128 );
}
void mousePressed()
{
println( "Элементов в списке : " + list.size());
}
С помощью remove() можно удалить объект из списка. Пройтись по все элементам списка можно через цикл for или через итератор.
HashMap похожи на массивы, но для доступа к элементам используют другие методы. Массивы используют целые числа в качестве индекса, а HashMap используют String.
HashMap удобны, когда вам нужно найти определённый элемент в огромном объёме данных.
В HashMap можно хранить только объекты и строки. Но нельзя хранить переменные типа float или int. Для хранения целых или вещественных чисел можно использовать классы Integer или Float из Java.
Добавляются элементы при помощи метода put(). В первом параметре указывается ключ (желательно строка), во втором указывается любой объект.
import java.util.Map;
HashMap<String, Float> hashMap;
void setup()
{
hashMap = new HashMap<String, Float>();
hashMap.put("Барсик", 51.30);
hashMap.put("Мурзик", 34.65);
hashMap.put("Рыжик", 42.58);
noLoop();
}
void draw()
{
for (Map.Entry me : hashMap.entrySet()) {
print(me.getKey() + ": ");
println(me.getValue());
}
}
Метод isEmpty() проверяет, является ли объект пустым. Получить доступ к элементу можно методом get().
println("Пустой? " + hashMap.isEmpty());
println("Получить объект Рыжик: " + hashMap.get("Рыжик"));
Для получения количества элементов используйте метод size(). Удалить элемент можно при помощи remove().
На главную страницу Processing