Вместо того, чтобы передавать поток ввода данных методу fillReport (), попробуйте вместо этого передать его в карте параметров:
Map<String, Object> params = new HashMap<>();
params.put(JsonQLQueryExecuterFactory.JSON_INPUT_STREAM, request);
JasperReport jasperReport = (JasperReport)
JRLoader.loadObject(jasperTemplateStream);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params);
JasperExportManager.exportReportToPdfStream(jasperPrint, response);
интерфейс SortedMap (с реализацией TreeMap) должен быть Вашим другом.
интерфейс имеет методы:
keySet()
, который возвращает ряд ключей в порядке по возрастанию values()
, который возвращает набор всех значений в порядке по возрастанию соответствующих ключей , Таким образом, этот интерфейс выполняет точно Ваши требования. Однако ключи должны иметь значимый порядок. Иначе Вы можете, использовал LinkedHashMap, где порядок определяется порядком вставки.
там объект, который действует как Карта того, что сохранил и получил доступ к парам ключ/значение, но может возвратить заказанный список ключей и заказанный список значений, таких, что ключ и оценивает списки, находятся в том же порядке?
Вы ищете java.util. LinkedHashMap. Вы получите список Карта. Entry< K, V> пары, которые всегда выполняются с помощью итераций в том же порядке. Тот порядок совпадает с порядком, согласно которому Вы вставляете объекты. С другой стороны, используйте java.util. SortedMap, где ключи должны или иметь естественное упорядочивание или иметь определенный Comparator
.
Я думаю самый близкий набор, который Вы получите от платформы, SortedMap
Я думаю, что интерфейс SortedMap осуществляет то, что Вы просите и реализации TreeMap это.
http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedMap.html http://java.sun.com/j2se/1.5.0/docs/api/java/util/TreeMap.html