Tag: java 8

使用Apache FOP时无法使用波兰语特殊字母

使用FOP生成PDF并使用波兰语字母,我一直在努力。 我一直在这里阅读很多post,但到目前为止还没有成功! 这是我的模板: 我的XML: Chcemy mieć pewność, że nasze produkty będą miały długą żywotność i stosujemy opakowania, aby uchronić je przed uszkodzeniem podczas przenoszenia i transportu. 和我的Java代码调用它: private void PolishTest() throws IOException, FOPException, TransformerException { // the XSL FO file File xsltFile = new File(“C:\\Temp\\PolishTest.xsl”); // the XML file which provides the input StreamSource xmlSource […]

在function上穿越图像的惯用方法

我正在使用Java 8并尝试编写纯函数代码。 在我的最新项目中,我需要逐步浏览图像中的每个像素,并对每个像素执行一些计算。 我提出的代码是这样的: IntStream .range(0, newImage.getWidth()) .forEach(i -> IntStream .range(0, newImage.getHeight()) .forEach(n -> { inspectPixel(i, n, newImage); }) ); 但是,命令式版本是这样的: for (int i = 0; i < newImage.getWidth(); i++){ for (int n = 0; n < newImage.getHeight(); n++){ inspectPixel(i, n, newImage); } } 也许这只是因为我太习惯于命令式编程,但后者似乎比前者更具可读性。 正在发生的事情之一是: 我的代码是错误的,我是以错误的方式进行的吗? 如果是这样,代码应该是什么样的? 您如何在function上遍历任何二维数据结构,而不仅仅是图像? 这实际上是Java 8function方案中程序的最佳版本,这种情况对于函数式编程来说简直很糟糕。

如何在java 8中使用流将集合/数组转换为JSONArray

我有一个双数组,我需要使用java流将数组转换为JSONArray。 我尝试使用forEach(共享可变性),这会导致数据丢失。 public static JSONArray arrayToJson(double[] array) throws JSONException{ JSONArray jsonArray = new JSONArray(); Arrays.stream(array) .forEach(jsonArray::put); return jsonArray; } 有什么方法可以使用流创建JSONArray吗?

如何在Java8中将Map流转换为TreeMap

我有一个方法,它接收一个地图流,应该返回一个TreeMap public TreeMap buildTreeMap(Stream<Map> inStream) { return stream.collect(toMap(???)); } 如何让它返回TreeMap?

Java 8 – Streams嵌套ForEach与不同的Collection

我尝试理解新的Java 8 Streams,并且我尝试了几天将嵌套的foreach循环转移到Java 8 Streams中的集合上。 是否有可能重构以下嵌套的foreach循环,包括Java-8-Streams中的if-conditions? 如果是的话会是什么样子。 ArrayList Inq = new ArrayList(); TreeMap Quotations = new TreeMap(); ArrayList tempInqAndQuot = new ArrayList(); ArrayList tempQuotPos = new ArrayList(); for (ClassInq simInq : this.Inq){ if (!simInq.isClosed() && !simInq.isDenied()){ for (Map.Entry Quot: Quotations.entrySet()){ SalesQuot sapQuot = Quot.getValue(); if (sapQuot.getInquiryDocumentNumber().compareTo(simInq.getSapInquiryNumber()) == 0){ simInq.setSAPQuotationNumber(sapQuot.getQuotationDocumentNumber()); tempInqAndQuot.add(simInq); for (Map.Entry quotp : sapQuot.getPosition().entrySet()){ […]

如何从Java 8中的Iterator获取n个第一个值?

我已经使用按照值(Java)将Map 排序到我有一个LinkedHashMap ,即保证迭代顺序的Iterable ,对HashMap进行了排序 。 现在,我想使用一行代码检索地图的前n个条目的java.util.List ,如果可能的话,使用Java 8 Collection Stream API技术。 我发现如何从Iterator获得两个连续值,这解释了有可能用数组做到这一点,但这并不优雅,不同于我获得List意图(虽然可以转换,但这是不必要的步骤)并需要一个额外的方法。

如何使用FXML在JavaFX中动态创建选项卡?

如何使用JavaFX / FXML创建新选项卡? 我在FXML中创建了一个tabpane,但我想点击一个按钮,导致出现一个新标签。 这是我的FXML: 这是我在我的控制器中正在尝试的代码: package sample; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.*; import java.net.URL; import java.util.ResourceBundle; public class Controller implements Initializable { @FXML private Button btnAbout; @FXML private Button btnNew; @FXML private TabPane tabPane; //tab array int intTabs = 0; Tab[] openTabs; @FXML private void btnNew(ActionEvent event){ try{ intTabs++; openTabs = […]

在Java 8中分组在具有聚合的多个字段上

我有一个与Web访问记录相关的域对象列表。 这些域对象可以扩展到数千个。 我没有资源或要求以原始格式将它们存储在数据库中,因此我希望预先计算聚合并将聚合数据放入数据库中。 我需要聚合在5分钟窗口中传输的总字节数, 如下面的SQL查询 select round(request_timestamp, ‘5’) as window, –round timestamp to the nearest 5 minute cdn, isp, http_result_code, transaction_time, sum(bytes_transferred) from web_records group by round(request_timestamp, ‘5’), cdn, isp, http_result_code, transaction_time 在Java 8中我的第一个当前stab看起来像这样, 我知道这个解决方案类似于这个响应在Group 8中由多个字段名称在java 8中 Map<Date, Map<String, Map<String, Map<String, Map>>>>>> aggregatedData = webRecords .stream() .collect(Collectors.groupingBy(WebRecord::getFiveMinuteWindow, Collectors.groupingBy(WebRecord::getCdn, Collectors.groupingBy(WebRecord::getIsp, Collectors.groupingBy(WebRecord::getResultCode, Collectors.groupingBy(WebRecord::getTxnTime, Collectors.reducing(0, WebRecord::getReqBytes(), Integer::sum))))))); 这很有效,但它很难看,所有嵌套的地图都是噩梦! […]

对一个集合的元素执行操作并迭代结果以执行其他操作

如果我有2个collections, List domainArr; List personArr; 我想对String中的每个元素进行一次小的转换,然后遍历personArr List urlArr = strArr.stream() .map(str -> “https://” + strArr) .collect(Collectors.toList()); 我有一个方法 List getPersons(String url){ /*makes a restful call to the url and gets a List of objects for each URL.*/ } 我想迭代来自urlArr的每个url并将其传递给getPersons(url)方法,并且对于每个获得的结果(List),我想迭代该人并对这些人执行更多操作 persons.stream() .filter(Objects::nonNull) .map(Person::getName) .filter(Objects::nonNull) .collect(Collectors.toList()); 我希望从所有结果中得到所有人名。 我想知道如何在Java 8中实现这一function。任何指针?

在前一次reflection之后,设置静态最终字段的Javareflection失败

在Java中,事实certificate,字段访问器被缓存,并且使用访问器具有副作用。 例如: class A { private static final int FOO = 5; } Field f = A.class.getDeclaredField(“FOO”); f.setAccessible(true); f.getInt(null); // succeeds Field mf = Field.class.getDeclaredField(“modifiers” ); mf.setAccessible(true); f = A.class.getDeclaredField(“FOO”); f.setAccessible(true); mf.setInt(f, f.getModifiers() & ~Modifier.FINAL); f.setInt(null, 6); // fails 而 class A { private static final int FOO = 5; } Field mf = Field.class.getDeclaredField(“modifiers” […]