public class ComparatorUtil implements Comparator<TermDto>
{
public int compare(TermDto o1, TermDto o2) {
if (o1.getId().compareTo(o2.getId()) > 0)
{
return 1;
}
else if (o1.getId().compareTo(o2.getId()) < 0)
{
return -1;
}
else
{
return 0;
}
}
}
vocabularyTermList = metaManagWs.getTopTermsByVocabularyId(CertificationConstant.E);
Collections.sort(vocabularyTermList, new ComparatorUtil());
comparable接口只有一个方法:int compareTo(T o)(位于java.lang包下),主要作用是比较两个对象的大小。而Comparator<T>接口位于java.util包下,他有两个方法: int compare(T o1, T o2) 和boolean equals(Object obj) ,它的作用主要是用在集合的排序中(指定排序规则),强行对某个对象 collection 进行整体排序 的比较函数,也可用在Arrays的sort(Comparator c)方法中。
分享到:
相关推荐
第5 版 清华大学出版社<br> “SCJP学习指南” 人民邮电出版社<br> “Java 编程思想” 第3版 机械工业出版社<br> 教学内容和要求<br>知识点 重要程度 使用频度 难度<br>Java 入门 高 中 易<br>变量和运算符 高 ...
List<Object[]> matchingRows = new ArrayList<>(); for (List<Object> row : rows) { if (row.get(columns.indexOf(columnName)).equals(value)) { matchingRows.add(row.toArray(new Object[0])); } } ...
本主题将深入探讨如何对ArrayList中的对象按照多个属性进行排序。 首先,我们来看`Student.java`类,它通常会包含一个或多个属性,比如学生的姓名(name)、学号(id)或其他信息。例如: ```java public class ...
在Java编程中,对List集合中的对象进行多属性排序是一项常见的任务。这通常涉及到自定义比较逻辑,以满足复杂的数据排序需求。在这个“java版本List中对象多属性排序.rar”压缩包中,我们可能找到了一个关于如何在...
在Java中,我们可以对两种类型的元素进行排序:原始类型(如int、char)和对象。对于对象,排序主要涉及到`Comparable`接口和`Comparator`接口。 - **Comparable接口**:如果一个类的实例需要被排序,那么该类应该...
List<String> newList = new ArrayList<>(new HashSet<>(list)); System.out.println("去重后的集合:" + newList); } ``` #### 2. 使用Stream API的distinct() Stream API提供了一个方便的`distinct()`方法,...
- `java.util.Collections`:提供对集合框架的静态方法,如排序和搜索操作。 - `java.util.GC`(垃圾收集):Java内存管理的重要部分,自动回收不再使用的对象。 - `java.util.Properties`:用于处理属性列表,常...
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(t -> t.getName()))), ArrayList::new )); ``` **方法二:使用自定义的distinctByKey方法去重** Java 8的Stream API中的`distinct()`方法...
List<Person> personList = new ArrayList<>(); for (String name : sortedNames) { Person person = new Person(); person.setName(name); personList.add(person); } ``` 以上内容只是对给定标题和描述的推测...
这些对象被添加到一个`ArrayList<Student>`类型的`studentList`中。`ArrayList`允许我们在运行时向列表中添加或删除元素,而不必预先知道其大小。 接着,我们使用`Collections.sort()`方法对ArrayList进行排序。`...
List<List<Object>> list2 = new ArrayList<>(); for (String key : map.keySet()) { List<Object> list3 = new ArrayList<>(); list3.add(0, key); list3.add(1, map.get(key)); list2.add(list3); } ``` 此外...
- 泛型列表:`List<String> list = new ArrayList<>();` - 泛型迭代器:`for (String s : list) { ... }` - **自定义泛型** - 函数声明泛型:`<T> T max(T t1, T t2) { ... }` - 类声明泛型:`public class ...
这类数据结构通常需要实现多个接口,包括但不限于`IDictionary<TKey, TValue>`、`IEnumerable<T>`等,并可能涉及到泛型约束、泛型类型参数的复杂使用,以及自定义泛型方法和属性的设计。这种高级泛型编程不仅考验...
List<MyObject> myList = new ArrayList<>(); myList.add(new MyObject("value1")); myList.add(new MyObject("value2")); myList.add(new MyObject("value3")); // 使用Comparable接口进行排序 class MyObject ...
List<String> list = new ArrayList<>(); list.add("Element1"); list.add("Element2"); ``` 8. **IO操作**:Java 的 IO 操作主要涉及 InputStream、OutputStream、Reader、Writer 等类。下面是一个读取文件的示例...
Map<String, Object> data = new HashMap<>(); try { // 查询所有菜单 List<Menu> allMenu = menuDao.findTree(); // 根节点 List<Menu> rootMenu = new ArrayList<>(); for (Menu nav : allMenu) { if ...
List<T> result = new ArrayList<>(); try { conn = dataSource.getConnection(); pstmt = conn.prepareStatement(sql); // 设置参数 Field[] fields = entityClass.getDeclaredFields(); for (int i = 0...
private List<T> list = new ArrayList<>(); public ListBuilder add(T item) { list.add(item); return this; } public ListBuilder sort(Comparator<T> comparator) { Collections.sort(list, comparator...
private ArrayList<Integer> ids = new ArrayList<>(); @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if ("item".equals...
6. 学生排序:使用Collections工具类的`sort()`方法,可以对ArrayList进行排序,如按照学号升序排列。 在实践中,为了提高代码的可读性和可维护性,我们还会遵循面向对象原则,将相关的操作封装到一个名为`...