Я не думаю, что в спецификации HTTP нет ничего, что заставляло бы браузеры отправлять параметры в порядке их появления в форме. Вы можете обойти это, добавив число к имени параметра, например:
FirstName --> 0_FirstName
LastName --> 1_LastName
....
После этого вы можете упорядочить элементы по префиксу. Это уродливое решение, но это единственный способ сделать это. Что-то вроде ...
//Assuming you fill listOfParameters with all the parameters.
Collections.sort(listOfParameters, new Comparator<String>() {
int compare(String a,String b) {
return Integer.getInt(a.substring(0,a.indexOf("_"))) - Integer.getInt(a.substring(0,b.indexOf("_")))
}
}
);
for (String param : listOfParameters) {
//traverse in order of the prefix
}
Кстати - действительно ли имеет значение порядок, в котором вы получаете параметры?