`

Java8 sample code 阅读

    博客分类:
  • Java
 
阅读更多
阅读了jdk1.8.0_05/sample/lambda/BulkDataOperations/src/CSVProcessor.java
try (BufferedReader br = new BufferedReader(
                Files.newBufferedReader(Paths.get(args[args.length - 1]))))

try(resource) this will cause resource automatically closed after try closure.
it works since 1.7

List<String> header = Arrays.stream(br.readLine().split(","))
                    .map(String::trim).collect(toList());

static <T> Stream<T>	stream(T[] array)

Returns a sequential Stream with the specified array as its source.
Stream is a new interface of Java 8, with it map iterator can be done in one line.
<R> Stream<R>	map(Function<? super T,? extends R> mapper)

Returns a stream consisting of the results of applying the given function to the elements of this stream.
Function also a new interface of Java 8. Class::Method can get the Function。
without Java 8, the code will like:
List<String> header = new ArrayList<String>();
String[] hs = br.readLine().split(",");
for(String h:hs){
    header.add(h.trim());
}


Comparator<String> cmp
                            = Comparator.comparing(str -> getCell(str, column),
                                    String.CASE_INSENSITIVE_ORDER);

str -> getCell(str, column) is lambda express, it is a Function, like
String getKey(String str){
    return getCell(str, column);
}


the code is more readable, 都在向着口语化发展
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics