首先. 我是在数据库中查询的几行数据. 比如 >
id name sex age
1 张三 男 18
2 李四 男 17
3 王五 男 12
4 啊工 男 20
查询出来之后, 保存在集合类中, 然后 根据 它们的年龄 进行排序. 打印出来. 强人麻烦 贴出代码. 就从保存在集合类中开始..
解决方案 »
- 大神高手菜鸟,都来看看了,纠结的题求解咯~!
- 如何在java 的class文件中的jvm字节码定位对应回到java源程序的某一行?
- java 新建文件的问题。
- String s = "abc"中java究竟在何时以怎样的方式实现字符常量向字符数组的转换
- 关于char类型与unicode的一点疑问?
- JCreator执行完程序后死掉
- smartupload上传文件 如果磁盘已满 有提示么?
- Java中的"值传递"和"引用传递"各是用在什么情况下?"弱引用机制"是"引用传递"吗?
- 怎样把字节流转换成字符数组或字符串?
- 这个怎么优化下?
- 关于远程查数据库的问题!
- at java.lang.ClassLoader.defineClass1(Native Method)
重写比较的接口,呵呵
sort
public static <T> void sort(List<T> list,
Comparator<? super T> c)
现在所要做的事就是简单地写个实现类就行了
new Comparator(){
public int compareTo(Object p1,Object p2){return ((Student)p1).getAge()-((Student)p2).getAge();}
}
);
package sort;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.*;
import sun.text.CompactShortArray.Iterator;public class SortTest {
public static void main(String[] args){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:xuwang");
String sql="select * from student";
Statement state=conn.createStatement();
ResultSet rs=state.executeQuery(sql);
ArrayList rl=new ArrayList();
//取出其数据 保存在 ArrayList中.
while(rs.next()){
rl.add(rs.getInt(1)); // 保存 ID
rl.add(rs.getString(2)); //保存 name
rl.add(rs.getString(3)); //保存 sex
rl.add(rs.getInt(4)); //保存 age }
java.util.Iterator it=rl.iterator();
//使用 迭代进行打印.
//这里我打印了全部.. 就是不知道怎么把 年龄取出来进行排序. 然后打印出来. 包括其 姓名,年龄,性别.
while(it.hasNext()){
System.out.print(it.next());
}
System.out.println();
}catch(Exception e){
e.printStackTrace();
}
}
}
估计考试是主要考你会不会对IComparable接口的运用
估计考试是主要考你会不会对IComparable接口的运用
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class Firstwork {
//加载驱动
public Statement state() {
Connection conn = null;
Statement stathe=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:example", "sa", "fb");
stathe= conn.createStatement();;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return stathe;
}
//执行SQL语句
public ResultSet rs() {
ResultSet rs = null;
try {
Statement state = this.state();
String sql = "select Id,Name,Age,Sex from student";
rs = state.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
//ArrayList中装对象.
public ArrayList Secondwork() {
ResultSet rs = this.rs();
FileOutputStream output = null;
ArrayList alist = new ArrayList();
try {
output = new FileOutputStream("e:/1.txt");
while (rs.next()) {
Stuent student = new Stuent();
student.setId(rs.getInt(1));
student.setName(rs.getString(2));
student.setAge(rs.getInt(3));
student.setSex(rs.getString(4));
String str = "\r\n";
byte[] wok = str.getBytes();
int sid=student.getId()
; //获取ID为int
String ss=String.valueOf(sid);//将int转换为String
byte[] sidbyte=ss.getBytes(); //将String转换为byte
int sage=student.getId(); //获取ID为int
String s=String.valueOf(sage);//将int转换为String
byte[] sagebyte=ss.getBytes(); //将String转换为byte
output.write(sidbyte);
output.write(student.getName().getBytes());
output.write(sagebyte);
output.write(student.getSex().getBytes());
output.write(wok);
alist.add(student);
}
output.close();
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return alist;
}
//打印结果
public void print() {
ArrayList a = this.Secondwork();
for (int i = 0; i < a.size(); i++) {
System.out.print(((Stuent) a.get(i)).getId() + " ");
System.out.print(((Stuent) a.get(i)).getName() + " ");
System.out.print(((Stuent) a.get(i)).getAge() + " ");
System.out.print(((Stuent) a.get(i)).getSex() + "\n");
}
}
}
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class Firstwork {
//加载驱动
public Statement state() {
Connection conn = null;
Statement stathe=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:example", "sa", "fb");
stathe= conn.createStatement();;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return stathe;
}
//执行SQL语句
public ResultSet rs() {
ResultSet rs = null;
try {
Statement state = this.state();
String sql = "select Id,Name,Age,Sex from student";
rs = state.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
//ArrayList中装对象.
public ArrayList Secondwork() {
ResultSet rs = this.rs();
FileOutputStream output = null;
ArrayList alist = new ArrayList();
try {
output = new FileOutputStream("e:/1.txt");
while (rs.next()) {
Stuent student = new Stuent();
student.setId(rs.getInt(1));
student.setName(rs.getString(2));
student.setAge(rs.getInt(3));
student.setSex(rs.getString(4));
String str = "\r\n";
byte[] wok = str.getBytes();
int sid=student.getId()
; //获取ID为int
String ss=String.valueOf(sid);//将int转换为String
byte[] sidbyte=ss.getBytes(); //将String转换为byte
int sage=student.getId(); //获取ID为int
String s=String.valueOf(sage);//将int转换为String
byte[] sagebyte=ss.getBytes(); //将String转换为byte
output.write(sidbyte);
output.write(student.getName().getBytes());
output.write(sagebyte);
output.write(student.getSex().getBytes());
output.write(wok);
alist.add(student);
}
output.close();
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return alist;
}
//打印结果
public void print() {
ArrayList a = this.Secondwork();
for (int i = 0; i < a.size(); i++) {
System.out.print(((Stuent) a.get(i)).getId() + " ");
System.out.print(((Stuent) a.get(i)).getName() + " ");
System.out.print(((Stuent) a.get(i)).getAge() + " ");
System.out.print(((Stuent) a.get(i)).getSex() + "\n");
}
}
}排序就没写了..
讲一下原理:
1 通过SQL语句 select * from table order by Column
2 如果没对SQL语句用order by
哪就把结果集放入Vector 中,
通过Vector 的排序方法进行排序,
也可以自己写算法进行排序
fosjos,谢谢了