Как выровнять размер коллекции списков Java ⇐ Android
-
Anonymous
Как выровнять размер коллекции списков Java
Итак, у меня есть коллекция списков, содержащих данные с датчика потоковой передачи. Затем я выполнил цикл for, чтобы сформировать его в формате, который позже я буду использовать для отправки в другое место (веб-сервер). Но иногда размер списков отличается на 1 или 2. И когда это происходит, код выдает исключение выхода за пределы границы.
это код, который я использую для сборки формата,
for (int i = 0; i < acceleroElaps.size(); i++) { Данные HashMap = новый HashMap(); data.put("человек", "Ади"); data.put("инструмент", "Акселерометр"); data.put("время", AcceleroTime.get(i)); data.put("истекло", AcceleroElaps.get(i)); data.put("xaxis", AcceleroXval.get(i)); data.put("yaxis", AcceleroYval.get(i)); data.put("zaxis", AcceleroZval.get(i)); AccelData.add(данные); } но иногда один из списков не имеет одинакового размера. Я пытался перебрать это с помощью такого итератора
ListIterator iterAT = acceleroTime.listIterator(); ListIterator iterAE = acceleroElaps.listIterator(); ListIterator iterAX = acceleroXval.listIterator(); ListIterator iterAY = acceleroYval.listIterator(); ListIterator iterAZ = acceleroZval.listIterator(); while (iterAT.hasNext() && iterAE.hasNext() && iterAX.hasNext() && iterAY.hasNext() && iterAZ.hasNext()){ Строка at = iterAT.next(); Строка ae = iterAE.next(); Строка ax = iterAX.next(); Строка ай = iterAY.next(); Строка az = iterAZ.next(); Данные HashMap = новый HashMap(); data.put("человек", "Ади"); data.put("инструмент", "Акселерометр"); data.put("время", в); data.put("истекло", ае); data.put("xaxis", топор); data.put("yaxis", ай); data.put("zaxis", az); AccelData.add(данные); а++; е++; } но это вызовет исключение ConcurrentModificationException. Поэтому я попытался выровнять размер списка, потому что он отличается только на 1 или 2 данных. Или, может быть, есть другое решение, у меня кончилась идея
Итак, у меня есть коллекция списков, содержащих данные с датчика потоковой передачи. Затем я выполнил цикл for, чтобы сформировать его в формате, который позже я буду использовать для отправки в другое место (веб-сервер). Но иногда размер списков отличается на 1 или 2. И когда это происходит, код выдает исключение выхода за пределы границы.
это код, который я использую для сборки формата,
for (int i = 0; i < acceleroElaps.size(); i++) { Данные HashMap = новый HashMap(); data.put("человек", "Ади"); data.put("инструмент", "Акселерометр"); data.put("время", AcceleroTime.get(i)); data.put("истекло", AcceleroElaps.get(i)); data.put("xaxis", AcceleroXval.get(i)); data.put("yaxis", AcceleroYval.get(i)); data.put("zaxis", AcceleroZval.get(i)); AccelData.add(данные); } но иногда один из списков не имеет одинакового размера. Я пытался перебрать это с помощью такого итератора
ListIterator iterAT = acceleroTime.listIterator(); ListIterator iterAE = acceleroElaps.listIterator(); ListIterator iterAX = acceleroXval.listIterator(); ListIterator iterAY = acceleroYval.listIterator(); ListIterator iterAZ = acceleroZval.listIterator(); while (iterAT.hasNext() && iterAE.hasNext() && iterAX.hasNext() && iterAY.hasNext() && iterAZ.hasNext()){ Строка at = iterAT.next(); Строка ae = iterAE.next(); Строка ax = iterAX.next(); Строка ай = iterAY.next(); Строка az = iterAZ.next(); Данные HashMap = новый HashMap(); data.put("человек", "Ади"); data.put("инструмент", "Акселерометр"); data.put("время", в); data.put("истекло", ае); data.put("xaxis", топор); data.put("yaxis", ай); data.put("zaxis", az); AccelData.add(данные); а++; е++; } но это вызовет исключение ConcurrentModificationException. Поэтому я попытался выровнять размер списка, потому что он отличается только на 1 или 2 данных. Или, может быть, есть другое решение, у меня кончилась идея
Мобильная версия