java 比较器的使用
对于一个实现了Comparable接口的对象,该接口只能实现一次。如果在一个集合里面需要使用id排序,而在另外一个集合里需要按名字排序这时就需要在这个集合里面指定比较器。
Comparable接口声明了compareTo(Object o)方法
Comparator 接口声明了compare(Object o1,Object o2)方法
eg:
第一个树集是按照对象默认的id排序,第二个树集由指定的构造器按照name 排序
public class Employee implements Comparable<Employee>{
private int id;
private String name;
public Employee(int id, String name){
this.id = id;
this.name = name;
}
public boolean equals(Object o){
if (o == null ){
return false;
}
if (this == o){
return true;
}
if(!(o instanceof Employee)){
return false;
}
Employee employee = (Employee)o;
return (this.id == employee.id) && (this.name.equals(employee.name));
}
public int hashCode(){
int result = 17;
result = 37 * result + id;
result = 37 * result + name.hashCode();
return result;
}
public String toString(){
return "id:"+id+",name:"+name+"";
}
public int compareTo(Employee employee){
//升序
return this.id - employee.id;
//降序
//return employee.id - this.id;
}
public String getName() {
return name;
}
}
/*******************************************************************/
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.Comparator;
public class TreeSetTest {
public static void main(String []args){
//使用的是实现了Compable 接口对象默认的排序方式,按id升序排序
SortedSet<Employee> treeSet = new TreeSet&
相关文档:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRo ......
学习Java值传递方法-武汉北大青鸟
值传递是在一个函数中,调用另外一个函数,其中含有参数传递的情况。往往值传递就是把数据传递到另外一个函数中进行进一步处理,以更清楚地显示函数的表达意思。在函数调用的时候会有数据传递,同样要考虑形参和实参的问题,如下面的一个程序:
on error resume next ShockMode ......
定义:
GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。
先看一个例子:
package com.state;
public class KissingPrincess {
// 标志位,标志是青蛙还是王子。
private boolean isFrog = true;
// 根据isFrog进行不同的操作。
public void greet() {
if (isFrog)
......
编写多线程的程序一直都是一件比较麻烦的事情,要考虑很多事情,处理不好还会出很多意想不到的麻烦。加上现在很多开发者接触到的项目都是打着企业级旗号的B/S项目,大多数人都很少涉及多线程,这又为本文的主角增加了一份神秘感。
讲到Java多线程,大多数人脑海中跳出来的是Thread、Runnable、synchronized…&hellip ......
package com.wfy.system.dao;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
......