4.10.1.1 Collections
To create a collection you call the .create() function. For example, a VertexProperty<Integer> is created as follows:
VertexProperty<Integer> distance = VertexProperty.create();
To get the value of a property at a certain vertex v
:
distance.get(v);
Similarly, to set the property of a certain vertex v
to a value e
:
distance.set(v, e);
You can even create properties of collections:
VertexProperty<VertexSequence> path = VertexProperty.create();
However, PGX Algorithm assignments are always by value (as opposed to by reference). To make this explicit, you must call .clone()
when assigning a collection:
VertexSequence sequence = path.get(v).clone();
Another consequence of values being passed by value is that you can check for equality using the ==
operator instead of the Java method .equals()
. For example:
PgxVertex v1 = G.getRandomVertex();
PgxVertex v2 = G.getRandomVertex();
System.out.println(v1 == v2);
Parent topic: Writing a Custom PGX Algorithm