У меня есть список с коллекциями объектов TitleIsbnBean. Я написал следующий фрагмент кода для группировки по этой коллекции по типу области обучения, как показано ниже.
titleListByLearningArea = nonPackageIsbnList.stream()
.collect(groupingBy(TitleIsbnBean::getKeylearningarea,
LinkedHashMap::new,Collectors.toList())
);
, но я хочу сохранить следующий указанный порядок c в карте, возвращаемой из указанного выше потока.
titleListByLearningArea.put("Commerce", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("English", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Health & PE", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Humanities", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Mathematics", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Music & the Arts", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Science", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Others", new ArrayList<TitleIsbnBean>() {});
но я получаю другой порядок, когда группирую коллекции по потокам. Как я могу поддерживать определенный c порядок, когда группа потоков по операциям использует.
class TitleIsbnBean {
private String titleName;
private String isbn;
private int status;
private String keylearningarea;
public TitleIsbnBean(String titleName, String isbn, int status, String keylearningarea){
super();
this.titleName = titleName;
this.isbn = isbn;
this.status = status;
this.setKeylearningarea(keylearningarea);
}
}
ArrayList<TitleIsbnBean> nonPackageIsbnList = new ArrayList<>();
Map<String,List<TitleIsbnBean>> titleListByLearningArea = new LinkedHashMap<>();
titleListByLearningArea.put("Commerce", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("English", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Health & PE", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Humanities", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Mathematics", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Music & the Arts", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Science", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea.put("Others", new ArrayList<TitleIsbnBean>() {});
titleListByLearningArea = nonPackageIsbnList.stream()
.collect(Collectors.groupingBy(TitleIsbnBean::getKeylearningarea,
LinkedHashMap::new,Collectors.toList()));