|
| 1 | +package com.java8; |
| 2 | + |
| 3 | +import java.util.Arrays; |
| 4 | +import java.util.Comparator; |
| 5 | +import java.util.List; |
| 6 | +import java.util.stream.Collectors; |
| 7 | + |
| 8 | +public class SortListOfString { |
| 9 | + |
| 10 | + public static void main(String[] args) { |
| 11 | + List<String> brands = Arrays.asList("adidas", "zudio", "Puma", "nike", "airbnb"); |
| 12 | + |
| 13 | + List<String> naturalOrder = sortNatural(brands); |
| 14 | + List<String> caseInsensitiveOrder = sortIgnoreCase(brands); |
| 15 | + List<String> reverseOrder = sortReverse(brands); |
| 16 | + |
| 17 | + System.out.println("Input list : " + brands); |
| 18 | + System.out.println("Natural sort : " + naturalOrder); |
| 19 | + System.out.println("Case-insensitive sort : " + caseInsensitiveOrder); |
| 20 | + System.out.println("Reverse sort : " + reverseOrder); |
| 21 | + } |
| 22 | + |
| 23 | + // Default lexicographical sorting (uppercase letters come before lowercase). |
| 24 | + private static List<String> sortNatural(List<String> values) { |
| 25 | + return values.stream() |
| 26 | + .sorted() |
| 27 | + .collect(Collectors.toList()); |
| 28 | + } |
| 29 | + |
| 30 | + // User-friendly sorting when input may contain mixed-case text. |
| 31 | + private static List<String> sortIgnoreCase(List<String> values) { |
| 32 | + return values.stream() |
| 33 | + .sorted(String.CASE_INSENSITIVE_ORDER) |
| 34 | + .collect(Collectors.toList()); |
| 35 | + } |
| 36 | + |
| 37 | + // Reverse sorting using a comparator. |
| 38 | + private static List<String> sortReverse(List<String> values) { |
| 39 | + return values.stream() |
| 40 | + .sorted(Comparator.reverseOrder()) |
| 41 | + .collect(Collectors.toList()); |
| 42 | + } |
| 43 | +} |
0 commit comments