
松山文創園區

南子吝山



1 2 3 4 5 6 7 | import lombok.Data; @Data public class Group { private Integer id; private String name; } |
1 2 3 | Group(id=1, name=Group A) Group(id=2, name=Group B) Group(id=3, name=Group C) |
1 2 3 4 5 6 7 8 9 | List<Group> groups = dto.getUser().getGroups(); StringBuilder groupStringBuilder = new StringBuilder(); for (int i = 0; i < groups.size(); i++) { if (i == groups.size() - 1) { groupStringBuilder = groupStringBuilder.append(groups.get(i).getName()); } else { groupStringBuilder = groupStringBuilder.append(groups.get(i).getName()).append(", "); } } |
String groupStr = groups.stream().map(g -> g.getName()).collect(Collectors.joining(", "));
1 2 3 | private List<String> getDummyPlayers() { return Arrays.asList("王 柏 融", "林 智 勝", "林 泓 育", "蔣 智 賢", "高 國 慶"); } |
1 2 3 4 5 6 7 8 9 10 11 12 | private String separatePlayersWithComma(){ List<String> players =getDummyPlayers(); String playersWithComma = ""; for (int i = 0; i < players.size(); i++) { if (i == players.size() - 1) { playersWithComma = playersWithComma + players.get(i); } else { playersWithComma = playersWithComma + players.get(i) +", "; } } return playersWithComma; } |
1 2 3 4 5 | private String separatePlayersWithComma_usingJDK8(){ List<String> players =getDummyPlayers(); String playersWithComma = players.stream().collect(Collectors.joining(", ")); return playersWithComma; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | private void readExcelTest1(String excelFile) throws IOException { List<Issue> issues = new ArrayList<Issue>(); InputStream inputStream = null; Workbook workbook = null; try { // 1. Create a Workbook. inputStream = new FileInputStream(new File(excelFile)); // 2. Get first sheet workbook = new HSSFWorkbook(inputStream); Sheet sheet = workbook.getSheetAt(0); // 3. Iterate through each rows from first sheet Iterator<Row> rowIterator = sheet.iterator(); int rowCount = 1; while (rowIterator.hasNext()) { // (1) ignore header row if (rowCount == 1) { rowIterator.next(); rowCount++; } // (2) start to read each row from second row else { Row row = rowIterator.next(); Integer id = Double.valueOf(row.getCell(0).getNumericCellValue()).intValue(); String subject = row.getCell(1).getStringCellValue(); String status = row.getCell(2).getStringCellValue(); String priority = row.getCell(3).getStringCellValue(); String notes = row.getCell(4).getStringCellValue(); Issue issue = new Issue(); issue.setId(id); issue.setSubject(subject); issue.setStatus(status); issue.setPriority(priority); issue.setNotes(notes); issues.add(issue); } } // print collection issues.stream().forEach(issue -> log.debug(issue.toString())); } catch (FileNotFoundException e) { throw e; } catch (IOException e) { throw e; } finally { if (workbook != null) { workbook.close(); } if (inputStream != null) { inputStream.close(); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | private void readExcelTest2(String excelFile) throws Exception { try { // 1. Create a Workbook. @Cleanup InputStream inputStream = new FileInputStream(new File(excelFile)); // 2. Get first sheet @Cleanup Workbook workbook = new HSSFWorkbook(inputStream); List<Issue> issues = new ArrayList<Issue>(); Sheet sheet = workbook.getSheetAt(0); // 3. Iterate through each rows from first sheet Iterator<Row> rowIterator = sheet.iterator(); int rowCount = 1; while (rowIterator.hasNext()) { // (1) ignore header row if (rowCount == 1) { rowIterator.next(); rowCount++; } // (2) start to read each row from second row else { Row row = rowIterator.next(); Integer id = Double.valueOf(row.getCell(0).getNumericCellValue()).intValue(); String subject = row.getCell(1).getStringCellValue(); String status = row.getCell(2).getStringCellValue(); String priority = row.getCell(3).getStringCellValue(); String notes = row.getCell(4).getStringCellValue(); Issue issue = new Issue(); issue.setId(id); issue.setSubject(subject); issue.setStatus(status); issue.setPriority(priority); issue.setNotes(notes); issues.add(issue); } } // print collection issues.stream().forEach(issue -> log.debug(issue.toString())); } catch (FileNotFoundException e) { throw e; } catch (Exception e) { throw e; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | private List<String> writeImage(PDDocument document, String outputPrefix, ImageType imageType, float dpi, String fileName) throws IOException { ImageIO.scanForPlugins(); List<String> tifNames = new ArrayList<String>(); PDFRenderer renderer = new PDFRenderer(document); for (int i = 0; i < document.getNumberOfPages(); i++) { BufferedImage image = renderer.renderImageWithDPI(i, dpi, imageType); String outputPostfix = "_" + String.format("%02d", i + 1); // 01開始 String outputFileName = outputPrefix + outputPostfix;// 檔名: 保單號碼_0X tifNames.add(fileName + outputPostfix); // 回傳產了那些檔名 ImageIOUtil.writeImage(image, outputFileName + "." + "tif", Math.round(dpi)); image.flush(); } return tifNames; } |
1 2 3 4 5 6 7 8 9 10 | DEBUG SMTP: MessagingException while sending, THROW: com.sun.mail.smtp.SMTPSendFailedException: 452 message processing failed: connection timeout at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2203) at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1981) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1197) at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:448) at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:345) at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340) at com.yuantalife.ecp.commons.service.EmailService.send(EmailService.java:260) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | package albert.practice.lambda; import java.io.Serializable; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; @Data @ToString @AllArgsConstructor @NoArgsConstructor public class Person implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String name; private Gender gender; private int age; private String email; } |
1 2 3 4 5 6 7 8 9 10 | private List<Person> findByApacheCommonsEx1(List<Person> dummyData) { return (List<Person>) CollectionUtils.select(dummyData, new Predicate() { @Override public boolean evaluate(Object object) { Person person = (Person) object; Boolean condition = person.getAge() >= 25 && Gender.MALE.equals(person.getGender()); return condition; } }); } |
1 2 3 4 5 | private List<Person> findByLambdaEx1(List<Person> dummyData) { return dummyData.stream() .filter(person -> person.getAge() >= 25 && Gender.MALE.equals(person.getGender())) .collect(Collectors.toList()); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private Person findByApacheCommonsEx2(List<Person> dummyData) { List<Person> result = (List<Person>) CollectionUtils.select(dummyData, new Predicate() { @Override public boolean evaluate(Object object) { Person person = (Person) object; return person.getAge() >= 25; } }); Person person = null; if (!result.isEmpty()) { person = result.get(0); } return person; } |
1 2 3 4 5 | private Person findByLambdaEx2(List<Person> dummyData) { Optional<Person> p = dummyData.stream() .filter(person -> person.getAge() >= 25).findFirst(); return p.isPresent() ? p.get() : null; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | private List<String> getDummyPlayers() { return Arrays.asList("王 柏 融", "林 智 勝", "林 泓 育", "蔣 智 賢", "高 國 慶"); } // using Apache Commons CollectionUtils private void findPlayer() { List<String> players = getDummyPlayers(); String name = "陳 金 鋒"; List<String> result = (List<String>) CollectionUtils.select(players, new Predicate() { @Override public boolean evaluate(Object object) { String player = (String) object; return name.equals(player); } }); if (CollectionUtils.isEmpty(result)) { throw new RuntimeException("Cannot find player with name " + name); } } // Using Lambda expression private void findPlayer_usingJDK8() { List<String> players = getDummyPlayers(); String name = "陳 金 鋒"; players.stream().filter(player -> name.equals(player)).findFirst() .orElseThrow(() -> new RuntimeException("Cannot find player with name " + name)); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | private List<String> getDummyPlayersWithDuplicateValue() { return Arrays.asList("王 柏 融", "林 智 勝", "林 泓 育", "王 柏 融", "林 智 勝", "蔣 智 賢", "高 國 慶"); } // using Apache Commons CollectionUtils private void removeDulpicatePlayerAndSort() { List<String> players = getDummyPlayersWithDuplicateValue(); List<String> newList = new ArrayList<>(); for (String player : players) { if (!newList.contains(player)) { newList.add(player); } } Collections.sort(newList, new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } }); newList.stream().forEach(player -> log.debug(player.toString())); } // Using Lambda expression private void removeDulpicatePlayerAndSort_usingJDK8() { List<String> players = getDummyPlayersWithDuplicateValue(); List<String> newList = players.stream().map(player -> player).distinct().sorted((o1, o2) -> o1.compareTo(o2)) .collect(Collectors.toList()); newList.stream().forEach(player -> log.debug(player.toString())); } |