Your question is unclear. If you mean how to access the four separate arrays in a loop...
for (int i = 0; i < ...; ++ i) {
p1.get(i);
p2.get(i);
p3.get(i);
pn.get(i);
}
If you mean you have four equal-sized arrays and you want to group the data together more conveniently, then ditch the four areas, make a class with the relevant fields to store your data in instead, and use a single array of that:
class Item {
Whatever v1;
Whatever v2;
Whatever v3;
Whatever vn;
}
ArrayList<Item> items = ...;
items.get(0);
If you mean you have a variable number of those arrays and you want to select which one you access dynamically, you can use an ArrayList of the original ArrayLists:
List<ArrayList<Whatever>> p = getListOfAllMyArrayLists();
p.get(n).get(0);
If you want to keep all your separate arrays for some reason (maybe you can't refactor) and just want a convenient way to access all the data at once, you can write a method to do that and pack the results into their own array, e.g.:
public List<Whatever> getAll (int x) {
List<Whatever> values = new ArrayList<Whatever>();
values.add(p1.get(x));
values.add(p2.get(x));
values.add(p3.get(x));
values.add(pn.get(x));
return values;
}
You could also implement getAll() to take a variable number of source arrays if you use an ellipses parameter.
I hope one of these is helpful.