/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/* Name of the class has to be "Main" only if the class is public. */
class Test
{
{
List<Test> tList = new ArrayList<>();
Test t = new Test(2,false);
tList.add(t);
t = new Test(2,true);
tList.add(t);
t = new Test(2,true);
tList.add(t);
t = new Test(2,false);
tList.add(t);
t = new Test(3, true);
t.setB(true);
tList.add(t);
t = new Test(10, true);
tList.add(t);
t = new Test(10, false);
tList.add(t);
t = new Test(10, true);
tList.add(t);
t = new Test(10, false);
tList.add(t);
t = new Test(80, false);
tList.add(t);
Comparator
<Test
> comparator
= Comparator.
comparing(p
-> p.
getA()); comparator = comparator.thenComparing(p -> p.getB());
tList = tList.stream().sorted(comparator).collect(Collectors.toList());
// List<Test> trGrList = tList.stream().sorted((trgr1, trgr2) -> Boolean.compare(trgr2.getB(),
// trgr1.getB()))
// .collect(Collectors.toList());
// System.out.println(trGrList);
// System.out.println(t2.getClass().getName());
// System.out.println(t2.getClass().getName().equals("Test"));
}
private static class TransportGroupComparator implements Comparator<Test> {
@Override
public int compare(Test trgr1, Test trgr2) {
int result
= Boolean.
compare(trgr2.
getB(),
trgr1.getB());
return result;
}
}
private int a;
private boolean b;
public Test(){}
public Test(int a, boolean b){
super();
this.a = a;
this.b = b;
}
public void setA(int a){
this.a = a;
}
public int getA(){
return a;
}
public void setB(boolean b){
this.b = b;
}
public boolean getB(){
return b;
}
@Override
return this.getA() + "||" + this.getB();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkNvbGxlY3RvcnM7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLlN0cmVhbTsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCUxpc3Q8VGVzdD4gdExpc3QgPSAgbmV3IEFycmF5TGlzdDw+KCk7CgkJVGVzdCB0ID0gbmV3IFRlc3QoMixmYWxzZSk7CgkJdExpc3QuYWRkKHQpOwoJCXQgPSBuZXcgVGVzdCgyLHRydWUpOwoJCXRMaXN0LmFkZCh0KTsKCQl0ID0gbmV3IFRlc3QoMix0cnVlKTsKCQl0TGlzdC5hZGQodCk7CgkJdCA9IG5ldyBUZXN0KDIsZmFsc2UpOwoJCXRMaXN0LmFkZCh0KTsJCQoJCXQgPSBuZXcgVGVzdCgzLCB0cnVlKTsKCQl0LnNldEIodHJ1ZSk7CgoJCXRMaXN0LmFkZCh0KTsKCQl0ID0gbmV3IFRlc3QoMTAsIHRydWUpOwoJCXRMaXN0LmFkZCh0KTsKCQl0ID0gbmV3IFRlc3QoMTAsIGZhbHNlKTsKCQl0TGlzdC5hZGQodCk7CgkJdCA9IG5ldyBUZXN0KDEwLCB0cnVlKTsKCQl0TGlzdC5hZGQodCk7CgkJdCA9IG5ldyBUZXN0KDEwLCBmYWxzZSk7CgkJdExpc3QuYWRkKHQpOwoJCXQgPSBuZXcgVGVzdCg4MCwgZmFsc2UpOwoJCXRMaXN0LmFkZCh0KTsKCQlTeXN0ZW0ub3V0LnByaW50bG4odExpc3QpOwoJCQoJCUNvbXBhcmF0b3I8VGVzdD4gY29tcGFyYXRvciA9IENvbXBhcmF0b3IuY29tcGFyaW5nKHAgLT4gcC5nZXRBKCkpOwogICAgICAgIGNvbXBhcmF0b3IgPSBjb21wYXJhdG9yLnRoZW5Db21wYXJpbmcocCAtPiBwLmdldEIoKSk7CgkJCgkJdExpc3QgPSB0TGlzdC5zdHJlYW0oKS5zb3J0ZWQoY29tcGFyYXRvcikuY29sbGVjdChDb2xsZWN0b3JzLnRvTGlzdCgpKTsKCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4odExpc3QpOwovLwkJTGlzdDxUZXN0PiB0ckdyTGlzdCA9IHRMaXN0LnN0cmVhbSgpLnNvcnRlZCgodHJncjEsIHRyZ3IyKSAtPiBCb29sZWFuLmNvbXBhcmUodHJncjIuZ2V0QigpLAovLyAgICAgICAgICAgICAgICAgICAgdHJncjEuZ2V0QigpKSkKLy8gICAgICAgICAgICAgICAgLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7Ci8vICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odHJHckxpc3QpOwogICAgICAgIAovLyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQyLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKLy8gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0Mi5nZXRDbGFzcygpLmdldE5hbWUoKS5lcXVhbHMoIlRlc3QiKSk7CiAgICAgICAgCiAgICAgICAgCgoJfQoJCglwcml2YXRlIHN0YXRpYyBjbGFzcyBUcmFuc3BvcnRHcm91cENvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yPFRlc3Q+IHsKCiAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgcHVibGljIGludCBjb21wYXJlKFRlc3QgdHJncjEsIFRlc3QgdHJncjIpIHsKICAgICAgICAgICAgaW50IHJlc3VsdCA9IEJvb2xlYW4uY29tcGFyZSh0cmdyMi5nZXRCKCksCiAgICAgICAgICAgICAgICAgICAgdHJncjEuZ2V0QigpKTsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocmVzdWx0KTsKICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICB9CiAgICB9CgkKCQoJCgkKCXByaXZhdGUgaW50IGE7Cglwcml2YXRlIGJvb2xlYW4gYjsKCQoJcHVibGljIFRlc3QoKXt9CgkKCXB1YmxpYyBUZXN0KGludCBhLCBib29sZWFuIGIpewoJCXN1cGVyKCk7CgkJdGhpcy5hID0gYTsKCQl0aGlzLmIgPSBiOwoJfQoJCglwdWJsaWMgdm9pZCBzZXRBKGludCBhKXsKCQl0aGlzLmEgPSBhOwoJfQoJCglwdWJsaWMgaW50IGdldEEoKXsKCQlyZXR1cm4gYTsKCX0KCQoJcHVibGljIHZvaWQgc2V0Qihib29sZWFuIGIpewoJCXRoaXMuYiA9IGI7Cgl9CgkKCXB1YmxpYyBib29sZWFuIGdldEIoKXsKCQlyZXR1cm4gYjsKCX0KCQoJQE92ZXJyaWRlCglwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCl7CgkJcmV0dXJuIHRoaXMuZ2V0QSgpICsgInx8IiArIHRoaXMuZ2V0QigpOwoJfQp9
[2||false, 2||true, 2||true, 2||false, 3||true, 10||true, 10||false, 10||true, 10||false, 80||false]
[2||false, 2||false, 2||true, 2||true, 3||true, 10||false, 10||false, 10||true, 10||true, 80||false]