//java list 排序
//关键词: java list 排序
//主要用到: Collections.sort方法:
package com.tom.compare;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CompareClient {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List list = new ArrayList();
list.add(new Content(15000,"1asdfasd5000"));
list.add(new Content(10000,"10000"));
list.add(new Content(20000,"20000"));
list.add(new Content(30000,"30000"));
list.add(new Content(25000,"25000"));
list.add(new Content(13000,"13000"));
list.add(new Content(15000,"15000"));
list.add(new Content(89000,"89000"));
ContentComparator comp = new ContentComparator();
Collections.sort(list,comp);
Content content;
for(int i = 0; i < list.size(); i++){
content = (Content)list.get(i);
System.out.println(" content.getName() " + content.getName());
}
}
}
package com.tom.compare;
import java.util.Comparator;
public class ContentComparator implements Comparator {
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
Content c1 = (Content) o1;
Content c2 = (Content) o2;
if (c1.getKey() > c2.getKey()) {
return 1;
} else {
if (c1.getKey() == c2.getKey()) {
return 0;
} else {
return -1;
}
}
}
}
package com.tom.compare;
public class Content {
private long key;
private String name;
public Content(long key, String name) {
this.key = key;
this.name = name;
}
public long getKey() {
return key;
}
public void setKey(long key) {
this.key = key;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
结果是:
content.getName() 10000
content.getName() 13000
content.getName() 1asdfasd5000
content.getName() 15000
content.getName() 20000
content.getName() 25000
content.getName() 30000
content.getName() 89000
===========================Set 排序===============================
TreeSet<Integer> set2 = new TreeSet<Integer>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 % 2 != 0) {
if (o2 % 2 != 0) {
return o2.compareTo(o1);
}
return -1;
}
if (o2 % 2 != 0) {
return 1;
}
return o2.compareTo(o1);
}
});
分享到:
相关推荐
Java中的排序机制主要依赖于内置的排序函数,如`Collections.sort()`和`Arrays.sort()`,它们简化了编程过程,避免了直接操作底层数据结构。在Java中,对象排序主要是通过对象实现`Comparable`接口或者使用自定义的`...
### 华为OD机试C卷- 字符串排序(Java & JS & Python) #### 题目背景 本题目来源于华为OD机试C卷,主要考察应聘者对字符串操作和排序算法的理解与应用能力。题目要求根据特定的排序规则对一系列单词进行排序,并...
- **List**和**Set**继承自`Collection`接口。 - **Map**不是`Collection`接口的子接口,它有自己的体系结构。 #### 17. Strings=newString("xyz");创建了几个StringObject? - 创建了一个`String`对象。 #### 18. ...
13. **用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?** - 排序方法参见上文快速排序示例。 - 序列化实现方法:实现`Serializable`接口或实现`Externalizable`接口。 14. **如在COLLECTION框架中,实现比较...
- `sort(List<T> list)`:对列表进行排序。 - `reverse(List<T> list)`:反转列表顺序。 - **查找**: - `max(Collection<? extends T> coll)`:查找最大值。 - `min(Collection<? extends T> coll)`:查找...
用JAVA实现一个快速排序? - 常见排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序等。 - **快速排序**示例: ```java public class QuickSort { public static void quickSort(int[] arr, int low,...
### 一、查询数据(返回List集合) #### 存储过程定义 首先,我们需要在Oracle数据库中创建一个存储过程`getAreas`,该过程用于查询`areas`表中的所有数据,并按`id`排序。 ```sql CREATE OR REPLACE PROCEDURE ...
通过GreenDao,开发者可以将Java对象直接映射到数据库表,实现数据的增删改查功能,避免了手动编写SQL语句的繁琐过程。 1. **增(Insert)**: 在GreenDao中,添加数据到数据库非常直观。首先,你需要创建一个对应...
- 常见排序方法有冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序等。 - **快速排序示例**: ```java public static void quickSort(int[] arr, int low, int ...
用JAVA实现一个快速排序? - **排序方法**:冒泡排序、插入排序、选择排序、快速排序、归并排序等。 - **快速排序**: ```java public static void quickSort(int[] arr, int low, int high) { if (arr == null ||...
- Collection 是所有集合框架接口的超接口,如 Set 和 List。 - Collections 是工具类,提供了一系列静态方法用于集合操作,如排序、查找、线程安全化等。 6. **字符串对象的创建**: - `new String("xyz")` 会...
以前写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 ...
list、set、map问题? 答:set 不允许重复,无序 list 允许重复,有序 map 成对的数据结构,键值必须具有唯一性 Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式允许...
在实际开发中,QueryWrapper的灵活性和易用性使得它可以广泛应用于各种场景,如数据检索、分页查询、排序等。配合Spring Boot的自动配置和依赖注入特性,可以快速地集成到项目中,提升开发效率。 除了QueryWrapper...
- Sorted Set:除了集合操作外,还支持按分数排序。 - Hash:用于存储键值对,可进行添加、更新、删除等操作。 2. 事务处理: - Jedis 支持批处理命令,允许用户在一个事务中执行多条命令,保证原子性。 3. ...
Java EE应用技术主要涵盖Web应用开发的多个方面...必填校验器是`required`,国际化资源文件通常以`.properties`为后缀,`iterator`标签可以迭代各种集合,包括List、Set和数组。防止表单重复提交通常使用`token`标签。
面试者还应该熟悉STL(标准模板库)中的容器,如vector、list、deque、stack、queue、heap等序列式容器,以及set、map、multiset、multimap等关联式容器。了解这些容器在海量数据处理中的应用,例如,map通常由红黑...
ORMLite提供了丰富的查询条件,如`where()`用于构建WHERE子句,`and()`, `or()`用于组合条件,`orderBy()`指定排序方式。例如: ```java List<User> users = dbHelper.getUserDao().queryBuilder() .where().eq(...