Java1.7 一个对象List按照另一个String类型的List集合的元素顺序对第一个List元素进行排序
时间: 2024-03-20 21:44:30 浏览: 61
在Java 1.7中,我们可以使用Collections.sort方法和自定义Comparator来实现一个对象List按照另一个String类型的List集合的元素顺序对第一个List元素进行排序。具体步骤如下:
1. 定义一个对象List,例如objList,以及一个String类型的List,例如strList。
2. 创建一个包含objList中所有元素的新List,例如sortedList。
3. 使用Collections.sort方法和自定义Comparator对sortedList进行排序,按照strList中元素的顺序进行比较。
下面是示例代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<MyObject> objList = new ArrayList<MyObject>();
objList.add(new MyObject("A", "value1"));
objList.add(new MyObject("B", "value2"));
objList.add(new MyObject("C", "value3"));
List<String> strList = Arrays.asList("C", "A", "B");
List<MyObject> sortedList = new ArrayList<MyObject>(objList);
Collections.sort(sortedList, new Comparator<MyObject>() {
@Override
public int compare(MyObject o1, MyObject o2) {
int index1 = strList.indexOf(o1.getName());
int index2 = strList.indexOf(o2.getName());
return Integer.compare(index1, index2);
}
});
System.out.println(sortedList); // 输出 [MyObject{name='C', value='value3'}, MyObject{name='A', value='value1'}, MyObject{name='B', value='value2'}]
}
}
class MyObject {
private String name;
private String value;
public MyObject(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return "MyObject{" +
"name='" + name + '\'' +
", value='" + value + '\'' +
'}';
}
}
```
阅读全文