public static void main(String[] args) { List<User> userList = new ArrayList<>(); User user1 = new User("1", "A"); User user2 = new User("2", "B"); User user3 = new User("3", "C"); User user4 = new User("4", "B"); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); List<String> orderList = Arrays.asList("B", "C", "A"); userList.sort(((o1, o2) -> { int index1 = orderList.indexOf(o1.getName()); int index2 = orderList.indexOf(o2.getName()); if (index1 != -1) { index1 = userList.size() - index1; } if (index2 != -1) { index2 = userList.size() - index2; } return index2 - index1; })); userList.forEach(item -> { System.out.println(item.getId() + "," + item.getName()); }); }