- 浏览: 3117519 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (372)
- diy (4)
- linux (19)
- 杂项 (30)
- Swing (21)
- Java2D (21)
- Java3D (5)
- JavaIO (9)
- Java通讯 (5)
- Java设计模式 (3)
- Java多媒体 (0)
- Java算法 (7)
- Spring&EJB (29)
- Javaoffice (4)
- web前端 (23)
- javascript (1)
- php基础 (1)
- eclipse (3)
- 网站相关 (3)
- Apache (4)
- seo (12)
- db (28)
- server (3)
- api (4)
- 异常 (12)
- 计算机网络词汇表 (3)
- 随想录 (52)
- 收藏 (17)
- 犹太人的智慧 (3)
- 多线程 (1)
- jfreechart (7)
- Test (1)
- SorLib (30)
- ruby on rails (1)
最新评论
-
houyutao:
二三四都是错的空字符串也被匹配,*应该改成+
Java中判断字符串是否为数字的五种方法 -
mingyun:
但是 java.util.ArrayList 实现了 remo ...
java.lang.UnsupportedOperationException 解决方案 -
mingyun:
1.因为 Arrays.asList 返回的是 Arrays内 ...
java.lang.UnsupportedOperationException 解决方案 -
leolu007:
用java8新特性String testStr = " ...
java.lang.UnsupportedOperationException 解决方案 -
zhaohuaxishiwzw:
我之前所在的项目就是日本一家证券公司的项目。完全使用的是j2e ...
抛弃EJB(EJB2.0,EJB3.0,EJB4.0)
用例是这样的:
一个结果集List,里面有很多的对象,要求根据对象的字段进行排序。
算法:
1. 对象实现Comparable接口,并从写compareTo()方法,方法里是排序规则。
2. 利用Arrays.sort(o)进行排序,不要要注意需要List.toArray();
3. 获得排序后的List。
具体算法如下:
排序和测试类:
运行结果如下:
一个结果集List,里面有很多的对象,要求根据对象的字段进行排序。
算法:
1. 对象实现Comparable接口,并从写compareTo()方法,方法里是排序规则。
2. 利用Arrays.sort(o)进行排序,不要要注意需要List.toArray();
3. 获得排序后的List。
具体算法如下:
import java.util.Date; /** * 需要排序的bean对象。 * * @author zaki * */ public class ComparableBean implements Comparable<ComparableBean> { private int id; private String name; private Date birthday; public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } /* * 按照id从大到到小的顺序排序。 自己可以在方法里面编写任意的排序算法。 */ public int compareTo(ComparableBean o) { // 根据名字从小到大顺序:if(String.CASE_INSENSITIVE_ORDER.compare(getName(), o.getName()) > 0) // 根据生日从小到大顺序:if (this.birthday.compareTo(o.getBirthday()) > 0) // 根据ID从小到大顺序。 if(this.getId() > o.getId()){ return 1; }else { return -1; } } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return getId() + " : " + getName() + " : " + getBirthday().toString(); } }
排序和测试类:
import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Random; public class TestComparable { private TestComparable() { ComparableBean cbean; Random rand = new Random(); List<ComparableBean> beans = new ArrayList<ComparableBean>(); for (int i = 0; i < 100; i++) { cbean = new ComparableBean(); cbean.setId(rand.nextInt(10000)); cbean.setBirthday(new Date()); cbean.setName("TestName" + rand.nextInt(1000)); beans.add(cbean); } Object[] beanObjects = beans.toArray(); Arrays.sort(beanObjects); beans.removeAll(beans); System.out.println(beans.size()); for (int i = 0; i < 100; i++) { System.out.println(beanObjects[i]); } System.out.println("ok"); } public static void main(String[] args) { new TestComparable(); } }
运行结果如下:
0 181 : TestName290 : Tue Mar 29 15:51:54 CST 2011 230 : TestName45 : Tue Mar 29 15:51:54 CST 2011 275 : TestName601 : Tue Mar 29 15:51:54 CST 2011 354 : TestName689 : Tue Mar 29 15:51:54 CST 2011 657 : TestName755 : Tue Mar 29 15:51:54 CST 2011 792 : TestName471 : Tue Mar 29 15:51:54 CST 2011 1041 : TestName441 : Tue Mar 29 15:51:54 CST 2011 1061 : TestName821 : Tue Mar 29 15:51:54 CST 2011 1247 : TestName836 : Tue Mar 29 15:51:54 CST 2011 1347 : TestName139 : Tue Mar 29 15:51:54 CST 2011 1791 : TestName105 : Tue Mar 29 15:51:54 CST 2011 1882 : TestName930 : Tue Mar 29 15:51:54 CST 2011 1993 : TestName969 : Tue Mar 29 15:51:54 CST 2011 2114 : TestName912 : Tue Mar 29 15:51:54 CST 2011 2131 : TestName677 : Tue Mar 29 15:51:54 CST 2011 2168 : TestName975 : Tue Mar 29 15:51:54 CST 2011 2215 : TestName354 : Tue Mar 29 15:51:54 CST 2011 2253 : TestName84 : Tue Mar 29 15:51:54 CST 2011 2310 : TestName928 : Tue Mar 29 15:51:54 CST 2011 2385 : TestName466 : Tue Mar 29 15:51:54 CST 2011 2387 : TestName492 : Tue Mar 29 15:51:54 CST 2011 2388 : TestName416 : Tue Mar 29 15:51:54 CST 2011 2578 : TestName873 : Tue Mar 29 15:51:54 CST 2011 2603 : TestName8 : Tue Mar 29 15:51:54 CST 2011 2768 : TestName538 : Tue Mar 29 15:51:54 CST 2011 2790 : TestName503 : Tue Mar 29 15:51:54 CST 2011 2797 : TestName884 : Tue Mar 29 15:51:54 CST 2011 2893 : TestName747 : Tue Mar 29 15:51:54 CST 2011 2894 : TestName333 : Tue Mar 29 15:51:54 CST 2011 2961 : TestName33 : Tue Mar 29 15:51:54 CST 2011 3086 : TestName691 : Tue Mar 29 15:51:54 CST 2011 3156 : TestName70 : Tue Mar 29 15:51:54 CST 2011 3220 : TestName534 : Tue Mar 29 15:51:54 CST 2011 3274 : TestName220 : Tue Mar 29 15:51:54 CST 2011 3361 : TestName696 : Tue Mar 29 15:51:54 CST 2011 3578 : TestName709 : Tue Mar 29 15:51:54 CST 2011 3593 : TestName982 : Tue Mar 29 15:51:54 CST 2011 3751 : TestName619 : Tue Mar 29 15:51:54 CST 2011 3760 : TestName707 : Tue Mar 29 15:51:54 CST 2011 3989 : TestName241 : Tue Mar 29 15:51:54 CST 2011 4189 : TestName900 : Tue Mar 29 15:51:54 CST 2011 4321 : TestName442 : Tue Mar 29 15:51:54 CST 2011 4460 : TestName739 : Tue Mar 29 15:51:54 CST 2011 4566 : TestName251 : Tue Mar 29 15:51:54 CST 2011 4687 : TestName261 : Tue Mar 29 15:51:54 CST 2011 4809 : TestName138 : Tue Mar 29 15:51:54 CST 2011 4933 : TestName168 : Tue Mar 29 15:51:54 CST 2011 4939 : TestName298 : Tue Mar 29 15:51:54 CST 2011 4944 : TestName885 : Tue Mar 29 15:51:54 CST 2011 5000 : TestName299 : Tue Mar 29 15:51:54 CST 2011 5116 : TestName528 : Tue Mar 29 15:51:54 CST 2011 5261 : TestName239 : Tue Mar 29 15:51:54 CST 2011 5330 : TestName665 : Tue Mar 29 15:51:54 CST 2011 5530 : TestName719 : Tue Mar 29 15:51:54 CST 2011 5543 : TestName273 : Tue Mar 29 15:51:54 CST 2011 5599 : TestName389 : Tue Mar 29 15:51:54 CST 2011 5762 : TestName132 : Tue Mar 29 15:51:54 CST 2011 5798 : TestName156 : Tue Mar 29 15:51:54 CST 2011 5988 : TestName507 : Tue Mar 29 15:51:54 CST 2011 6049 : TestName569 : Tue Mar 29 15:51:54 CST 2011 6092 : TestName671 : Tue Mar 29 15:51:54 CST 2011 6135 : TestName403 : Tue Mar 29 15:51:54 CST 2011 6226 : TestName492 : Tue Mar 29 15:51:54 CST 2011 6251 : TestName397 : Tue Mar 29 15:51:54 CST 2011 6310 : TestName892 : Tue Mar 29 15:51:54 CST 2011 6434 : TestName254 : Tue Mar 29 15:51:54 CST 2011 6622 : TestName436 : Tue Mar 29 15:51:54 CST 2011 6631 : TestName609 : Tue Mar 29 15:51:54 CST 2011 6676 : TestName348 : Tue Mar 29 15:51:54 CST 2011 6856 : TestName309 : Tue Mar 29 15:51:54 CST 2011 6906 : TestName492 : Tue Mar 29 15:51:54 CST 2011 6944 : TestName812 : Tue Mar 29 15:51:54 CST 2011 6990 : TestName563 : Tue Mar 29 15:51:54 CST 2011 7235 : TestName67 : Tue Mar 29 15:51:54 CST 2011 7275 : TestName783 : Tue Mar 29 15:51:54 CST 2011 7625 : TestName457 : Tue Mar 29 15:51:54 CST 2011 7670 : TestName598 : Tue Mar 29 15:51:54 CST 2011 7687 : TestName813 : Tue Mar 29 15:51:54 CST 2011 7884 : TestName581 : Tue Mar 29 15:51:54 CST 2011 7945 : TestName350 : Tue Mar 29 15:51:54 CST 2011 8062 : TestName772 : Tue Mar 29 15:51:54 CST 2011 8090 : TestName971 : Tue Mar 29 15:51:54 CST 2011 8107 : TestName368 : Tue Mar 29 15:51:54 CST 2011 8283 : TestName516 : Tue Mar 29 15:51:54 CST 2011 8322 : TestName434 : Tue Mar 29 15:51:54 CST 2011 8332 : TestName960 : Tue Mar 29 15:51:54 CST 2011 8933 : TestName326 : Tue Mar 29 15:51:54 CST 2011 8952 : TestName818 : Tue Mar 29 15:51:54 CST 2011 9051 : TestName363 : Tue Mar 29 15:51:54 CST 2011 9062 : TestName551 : Tue Mar 29 15:51:54 CST 2011 9099 : TestName913 : Tue Mar 29 15:51:54 CST 2011 9204 : TestName266 : Tue Mar 29 15:51:54 CST 2011 9313 : TestName555 : Tue Mar 29 15:51:54 CST 2011 9526 : TestName234 : Tue Mar 29 15:51:54 CST 2011 9573 : TestName948 : Tue Mar 29 15:51:54 CST 2011 9575 : TestName284 : Tue Mar 29 15:51:54 CST 2011 9635 : TestName409 : Tue Mar 29 15:51:54 CST 2011 9762 : TestName963 : Tue Mar 29 15:51:54 CST 2011 9819 : TestName962 : Tue Mar 29 15:51:54 CST 2011 9995 : TestName116 : Tue Mar 29 15:51:54 CST 2011 ok
评论
1 楼
areful
2013-03-06
List list = new ArrayList(); //...... Collections.sort(list, new Comparator() { //这里的o1和o2就是list里任意的两个对象 //然后按需求把这个方法填完整就行了 public int compare(Object o1, Object o2) { //比较规则 } });
发表评论
-
log4j ConversionPattern 参数的格式含义
2014-12-17 11:51 2197ConversionPattern参数的格式含义 格式名 含 ... -
Java的定时器的例子
2012-06-28 14:30 1620一个java的定时器,每隔1秒钟刷新一次JLabel,5秒钟后 ... -
JPDA:Java平台调试架构
2011-11-02 14:51 1408Java Platform Debugger Archit ... -
Sun Standard RMI Properties
2011-10-24 16:43 1592Properties that are useful to s ... -
ant编译时制定jdk版本
2011-07-27 14:21 1814eg: 指定1.5 -Dant.build.javac.tar ... -
SLF4J+logBack 代替 Log4j
2011-07-08 14:33 14225Ceki Gülcü创造了日志领域界著名的Log4J,现在又实 ... -
MAVEN_OPTS和CATALINA_OPTS的作用
2011-07-06 15:25 4350MAVEN_OPTS=-Xdebug -Xrunjdwp:tr ... -
Eclipse WTP
2011-05-09 19:25 1751WTP(Web Tools Platform )项目在ecli ... -
Eclipse Checkstyle下载地址
2011-04-19 15:43 4241http://eclipse-cs.sourceforge.n ... -
MyEclipse8.5 删除J2EE项目中的JavaScript验证
2011-04-01 14:00 3300MyEclipse中J2EE项目中的JavaScript验证, ... -
为什么使用JUnit
2011-03-28 16:13 4047在你提升程序代码的品 ... -
Myeclipse8.5中svn插件的安装和下载
2011-03-21 13:50 16733安装subclipse, MyEclipse8.5 SVN插件 ... -
NetBeans6的文件树怎样自动展开?
2010-12-05 21:00 1591我们在使用Eclipse时,如果我们点击一个右边的文件,左边的 ... -
NetBeans常用快捷键
2010-11-29 14:07 2034完成代码:ctrl+\ 错误提 ... -
ArrayList和LinkedList的区别
2010-11-01 20:25 1993ArrayList看做是一个大小 ... -
类型后面三个点(String...)和数组(String[])的区别
2010-10-08 13:59 12206关键词:类型后面三个点,数组,String...,String ... -
软件设计师推荐阅读书籍列表
2010-09-28 16:00 1761* 《UML宝典》 * 《UML业务建模》 * 《设计模 ... -
对象序列化与反序列化
2010-09-21 13:55 1601关键词: 序列化,反序列化,例子 序列化简单说就是为了保存在 ... -
极限编程(Extreme Programming)
2010-09-20 13:47 1436Extreme Programming(极限编 ... -
Java 6的十大亮点
2010-09-19 17:01 1529关键词: Java6,功能,桌面,性能 1.性能和质量 ...
相关推荐
### Java集合容器面试题知识点详解 #### 集合容器概述 - **定义**:集合容器是一种用于存储数据的容器,其设计目的是为了提供一种统一且标准的方式来进行数据的存储和操作。 - **组成**:集合框架主要包括对外的...
19. **Java容器**:Java主要容器有List(ArrayList、LinkedList等)、Set(HashSet、TreeSet等)和Map(HashMap、TreeMap等)。 20. **ArrayList与LinkedList底层实现**:ArrayList基于动态数组,访问速度快,插入...
java面试试题 全面 准确 带答案 coreJava部分 8 1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 ...
Collection接口包括了List和Set,List如ArrayList和LinkedList,按照添加顺序维护元素,Set如HashSet和TreeSet,不允许重复元素且有特定的排序规则。Map接口用于存储键值对,如HashMap和TreeMap,key在Map中必须是...
1. **`hashCode()`和`equals()`**:这两个方法在Java中用于对象的比较。`hashCode()`返回对象的哈希码,常用于哈希表(如HashMap)中快速定位对象。`equals()`检查两个对象是否相等。通常,如果重写了`equals()`,也...
- 集合框架是Java API中的重要部分,包括List、Set、Map等接口,以及ArrayList、HashSet、HashMap等实现类,为数据存储和操作提供了强大支持。 这些只是Java API的一部分知识点,实际的开发过程中,开发者会根据...
Java集合框架是处理对象集合的重要工具,包括List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)和Map(如HashMap、TreeMap)。了解它们的特性和使用场景,可以优化数据存储和操作。书中可能会有针对集合...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司)于1995年发布。它以其“一次编写,到处运行”的特性而闻名,因为Java代码可以被编译成字节码,然后在任何支持Java的平台上运行。Java...
反射机制允许在运行时动态获取类的信息并操作类的对象,包括字段、方法和构造器。 #### 20. 类的反射机制中的包及核心类? 主要涉及`java.lang.reflect`包下的`Class`、`Constructor`、`Method`、`Field`等类。 #...
**二、Java容器** Java中的容器包括集合类,如List、Set和Map,它们是处理对象的容器。List按顺序存储元素,允许重复,如ArrayList和LinkedList;Set不允许重复元素,如HashSet和TreeSet;Map存储键值对,如HashMap...
5. **集合框架**:包括List、Set、Map接口及其实现,如ArrayList、LinkedList、HashSet、HashMap等。理解它们的区别、操作效率及应用场景。 6. **异常处理**:Java通过try-catch-finally语句处理异常,了解Checked...
List是有序且允许重复元素的集合,如ArrayList和LinkedList。Set不允许重复元素,如HashSet和TreeSet。Collections是集合操作的工具类,提供排序、查找、修改等方法。Map接口存储键值对,HashMap是最常用的实现,它...
3. **数据结构与算法**:数组、链表、栈、队列、集合(List、Set、Map接口及其常见实现类)、树结构(二叉树、平衡树如AVL、红黑树)等,以及常见的排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆...
- **Class类**:Java的Class类代表运行时的类信息,可以通过反射动态地创建对象、调用方法、获取和修改字段值。 8. **JDBC(Java数据库连接)**: - **连接数据库**:Java使用DriverManager类加载数据库驱动,...
- 集合框架是Java中处理对象数组的一种方式,包括List、Set和Queue接口,以及ArrayList、LinkedList、HashSet、TreeSet、LinkedList等实现类。 - `ArrayList`提供了动态数组的功能,允许在任何位置插入和删除元素...
Java反射API允许在运行时动态获取类的信息并操作对象,如`Class`类用于获取类信息,`Method`和`Field`分别代表类的方法和字段,`Constructor`表示构造函数。 8. **泛型** 泛型提供类型安全的容器,避免了强制类型...
集合是用来存储和操作一组对象的容器。提供了对数据的灵活管理,支持增删改查等操作。 #### 49. 集合的通用方法有那些?通用方法是什么?(操作) - 通用方法包括:`add()`、`remove()`、`contains()`、`size()`、`...
它们提供了存储和管理对象的容器,支持动态扩容、排序、遍历等功能。 六、输入/输出流 Java的I/O流用于处理数据的输入和输出,分为字节流和字符流,包括文件流、网络流等。BufferedReader和BufferedWriter等类用于...
4. **集合框架**:List、Set、Map接口的实现类,如ArrayList、LinkedList、HashSet、HashMap等,以及它们的特性和使用场景。理解集合的遍历、查找、排序等操作。 5. **泛型**:它的作用、限制和好处,如何创建泛型...
- **STL(Standard Template Library)**:容器(如vector、list、set)、算法(如排序、查找)和迭代器的使用。 - **异常处理**:try-catch语句的使用。 - **命名空间**:避免命名冲突。 3. **Java**:Java是一...