Sort Items in the Collection

0 Comments

Use Collections from java.util to sort our list.

Let’s have a look at the sample below:

import org.apache.commons.lang3.StringUtils;

import java.util.*;


public class Main {

    public static void main(String[] args) {

        String[] products = {"P001-1ML", "P001-0.5ML", "P001-100ML", "P001-25ML", "P001-0.7ML", "P001-20ML", "P001-1ML", "P001-0.1ML"};
        List<String> listProductCode = Arrays.asList(products);

        Collections.sort(listProductCode, new Comparator<String>() {
            @Override
            public int compare(String code1, String code2) {
                float number1 = getNumber(code1);
                float number2 = getNumber(code2);
                if (number1 - number2 > 0) {
                    return 1;
                } else if (number1 - number2 == 0) {
                    return 0;
                }
                return -1;
            }

            float getNumber(String value) {
                String number = value.replaceAll("[a-zA-Z-]", StringUtils.EMPTY);
                return number.isEmpty() ? 0 : Float.parseFloat(number);
            }
        });

        listProductCode.forEach(item -> System.out.println(item));

    }
}

The result:

P001-0.1ML
P001-0.5ML
P001-0.7ML
P001-1ML
P001-1ML
P001-20ML
P001-25ML
P001-100ML

Process finished with exit code 0


Leave a Reply

Your email address will not be published. Required fields are marked *