所以我有一个物品列表,随机分配给它们的ID号。然后将这些项目打印到列表中。我需要能够以升序打印出来。LinkedList类中的构造函数应该调用一个方法来构建测试数据列表。这些应该按排序的顺序添加到LinkedList中。下面是我需要编辑的代码,以使其工作:
public boolean decideToInsert (Makeup ee) {
boolean decision = false;
//code goes here
return decision;以下是我的链表代码:
package model;
import java.util.LinkedList;
import java.util.ListIterator;
public class MakeupList {
private LinkedList <Makeup> makeList = new LinkedList<>();
public MakeupList(){
this.createMakeList();
this.printMakeList();
}
public void createMakeList(){
makeList.add(new Makeup("Natural Face", "Too Face"));
for (int i = 0; i<10; i++){
addMakeup (new Makeup ("Matte Lipstick", "MAC"));
}
}
public void addMakeup (Makeup newMake){
boolean makeupAdded = false;
boolean insertDecision = false;
ListIterator<Makeup> makeIterator = makeList.listIterator();
while (makeIterator.hasNext()){
insertDecision = makeIterator.next().decideToInsert(newMake);
if (insertDecision == true){
makeList.add(makeIterator.previousIndex(), newMake);
makeupAdded = true;
break;
}
}
if(!makeupAdded){
makeList.add(newMake);
}
}
public void printMakeList(){
ListIterator<Makeup> makeIterator = makeList.listIterator();
while(makeIterator.hasNext()){
System.out.println(makeIterator.next().toString());
}
}
}下面是它当前打印输出的示例: Makeup: Natural Face Too Face ID: 1
化妆:哑光唇膏MAC ID: 1
化妆:哑光口红MAC ID: 0
化妆:哑光口红MAC ID: 2
化妆:哑光口红MAC ID: 37
化妆:哑光口红MAC ID: 10
化妆:哑光口红MAC ID: 21
化妆:哑光口红MAC ID: 34
化妆:哑光口红MAC ID: 8
化妆:哑光口红MAC ID: 33
化妆:哑光口红MAC ID: 19
发布于 2019-11-30 05:00:14
你的代码非常复杂。您只需将一个id添加到您的Makeup模型中,并按比较器对java流进行排序。更多细节在这里:java 8, Sort list of objects by attribute without custom comparator
发布于 2019-11-30 03:42:30
尝试使用:
Collections.sort(linkedlistVAR);在你打印出来之前。:-)
发布于 2019-11-30 03:46:44
我不太明白你的问题。如果Makeup有一个id属性,并且您想要按它排序,请尝试使用print方法开始时的比较器接口进行排序。
示例:makeList.sort(Comparator.nullsFirst(Comparator.comparing(Makeup::getId, Comparator.nullsFirst(naturalOrder()))));
https://stackoverflow.com/questions/59110088
复制相似问题