Lud*_*ado 5 java double sorted arraylist java-stream
我在使用流和排序以排序我的ArrayList时遇到了麻烦,并希望有人可以提供帮助.该代码使用克罗地亚语,但我认为这对于理解我的意思的人来说不会是一个问题.
这是ArrayList
ArrayList<Publikacija> listaPublikacija = new ArrayList<>();
listaPublikacija.add(prvaKnjiga);
listaPublikacija.add(drugaKnjiga);
listaPublikacija.add(prviCasopis);
listaPublikacija.add(drugiCasopis);
Run Code Online (Sandbox Code Playgroud)
在我的任务中,我应该通过getCijena()对上面的这些对象进行排序.
这是我得到的最好的,它仍然没有按它应该排序......
listaPublikacija.stream().sorted((s1, s2) -> Double.compare(s1.getCijena(), s2.getCijena()));
Run Code Online (Sandbox Code Playgroud)
任何类型的帮助或建议都赞赏...我已经以不同的方式进行了排序,但有必要通过流中的排序方法对其进行排序...
我将在下面发布课程脚本,以便更容易理解上述问题:
public Publikacija(String nazivKnjige, int godinaIzdanja, int brojStr, VrstaPublikacije vrstaPub, double cijenaPoStr, double cijena){
this.nazivKnjige= nazivKnjige;
this.godinaIzdanja = godinaIzdanja;
this.brojStr = brojStr;
this.vrstaPub = vrstaPub;
this.cijenaPoStr = cijenaPoStr;
if(getClass().equals(Casopis.class)){this.cijena= Casopis.CIJENA_PO_PRIMJERKU;}
else this.cijena = provjeraCijene(cijena(brojStr,vrstaPub,cijenaPoStr).doubleValue());
Run Code Online (Sandbox Code Playgroud)
您不是将已排序数组的结果存储回集合或数组.流操作不会改变底层集合:
List<String> names = Arrays.asList("Katka", "Martin", "John");
Object[] sortedNames = names.stream().sorted(String::compareTo).toArray();
System.out.println("array: " + Arrays.toString(sortedNames));
Run Code Online (Sandbox Code Playgroud)