英文:
Sort a list - string element
问题
我有一个如下的对象列表:
List<myObjectModel> list = new ArrayList();
myObjectModel 由两个字符串组成(名称和放置位置)
在这个列表中,按照以下顺序有以下元素:
myObjectModel("jeans", "B2")
myObjectModel("jonnhy", "A1")
myObjectModel("amanda", "H12")
myObjectModel("samy", "A2")
myObjectModel("bertrand", "G6")
我想要根据第二个字符串(A1 jonnhy,A2 samy,B2 jean,G6 bertrand,H12 amanda)对列表进行排序。
是否可以使用“sort”来实现?
谢谢
英文:
I have an object list like this:
List <myObjectModel> list = new ArrayList ();
myObjectModel is composed of two strings (name and placement)
In this list there are the following elements in this order:
myObjectModel ("jeans", "B2")
myObjectModel ("jonnhy", "A1")
myObjectModel ("amanda", "H12")
myObjectModel ("samy", "A2")
myObjectModel ("bertrand", "G6")
I would like to sort my list on the second string (A1 jonnhy, A2 samy, B2 jean, G6 bertrand, H12 amanda)
Is it possible with "sort"?
Thank you
答案1
得分: 0
使用List的sort方法:
myObjectModelList.sort(Comparator.comparing(MyObjectModel::getProperty2));
使用Java 8的Stream API:
List<MyObjectModel> myObjectModelList = list.stream()
.sorted(Comparator.comparing(MyObjectModel::getProperty2))
.collect(Collectors.toList());
英文:
Using sort method of List:
myObjectModelList.sort(Comparator.comparing(MyObjectModel::getProperty2));
Using Java 8 stream API:
List<MyObjectModel > myObjectModelList = list.stream()
.sorted(Comparator.comparing(MyObjectModel::getProperty2))
.collect(Collectors.toList());
答案2
得分: 0
如果您在谈论从数据库中检索已排序列表,则使用@OrderBy
,示例如下:
@OrderBy("second_string ASC")
List<myObjectModel> list = new ArrayList();
这里的second_string
是表中的列名。
英文:
if you are talking about retrieving the list sorted from the database then use
@OrderBy
like this
@OrderBy("second_string ASC")
List <myObjectModel> list = new ArrayList ();
and second_string
here is the column name in the table
答案3
得分: 0
你可以使用Java Stream API来解决这个问题。但我认为这并不高效。我建议使用Comparator方法。我编写了以下代码:
主方法:
public static void main(String[] args) {
List<myObjectModel> list = new ArrayList<>();
list.add(new myObjectModel("jeans", "B2"));
list.add(new myObjectModel("jonnhy", "A1"));
list.add(new myObjectModel("amanda", "H12"));
list.add(new myObjectModel("samy", "A2"));
list.add(new myObjectModel("bertrand", "G6"));
list.sort(new myObjectComparator());
System.out.println(list);
}
Java模型类:
public class myObjectModel{
public String name;
public String placement;
public myObjectModel(String name, String placement){
this.name = name;
this.placement = placement;
}
@Override
public String toString() {
return this.name + ", " + this.placement;
}
}
比较器类:
import java.util.Comparator;
public class myObjectComparator implements Comparator<myObjectModel>{
@Override
public int compare(myObjectModel o1, myObjectModel o2) {
return o1.placement.compareTo(o2.placement);
}
}
英文:
You can use JAVA Stream API to solve this problem. But i think it is not efficient. I suggest Comparator method. I write codes as below,
Main Method
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-html -->
public static void main(String[] args) {
List <myObjectModel> list = new ArrayList<> ();
list.add(new myObjectModel ("jeans", "B2"));
list.add(new myObjectModel ("jonnhy", "A1"));
list.add(new myObjectModel ("amanda", "H12"));
list.add(new myObjectModel ("samy", "A2"));
list.add(new myObjectModel ("bertrand", "G6"));
list.sort(new myObjectComparator());
System.out.println(list);
}
<!-- end snippet -->
Java Model Class
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-html -->
public class myObjectModel{
public String name;
public String placement;
public myObjectModel(String name, String placement){
this.name = name;
this.placement = placement;
}
@Override
public String toString() {
return this.name+", "+this.placement;
}
}
<!-- end snippet -->
Comparator Class
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-html -->
import java.util.Comparator;
public class myObjectComparator implements Comparator<myObjectModel>{
@Override
public int compare(myObjectModel o1, myObjectModel o2) {
return o1.placement.compareTo(o2.placement);
}
}
<!-- end snippet -->
专注分享java语言的经验与见解,让所有开发者获益!
评论