放到list里让他自己排?
不知道效率如何
不知道效率如何
解决方案 »
- SQL语句IN(主键,主键...)如何保证顺序?
- 欢迎大家踊跃谈论URL加密和JAVA安全
- prefuse问题
- Hibernate+Spring的openSessionInView问题
- 小弟在在csdn寻觅高手,愿意拜他为师~
- [新手求教]如何编写自己的 build.xml 文件
- 给钱 求: 用JAVA做一个程序:两个用户可以互相传送文件
- ▲▲▲急!无状态SessionBean操作数据库报异常:Statement has already been closed是怎么回事?
- 急,在线,tomcat报错
- 正在参加bea的weblogic的培训,高分征集各种问题!
- 关于HttpSessionListener类的监听问题
- struts标签中html:link标签传多值的问题
放到list里让他自己排?
不知道效率如何
--------------------------------------------嘿嘿,这个好不过HR一定不爽
直接用Collection.sort()
This algorithm offers guaranteed n log(n) performance.
耗时一秒左右
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Collections;public class Test { public static void main(String[] args) {
Test test = new Test();
List<String> outputList = new ArrayList<String>();
long output = 13114345369L;
System.out.println("now start");
for (int i = 0; i < 100000; i++) {
outputList.add(String.valueOf(output));
output--;
}
System.out.println("processing");
test.outputDataToFile(outputList, "data.txt");
long startTime=System.currentTimeMillis();
test.outputDataToFile(test.readSortAndReturnList(), "outcome.txt");
System.out.println("mission complete");
long endTime=System.currentTimeMillis();
System.out.println("Total cost: "+(endTime-startTime)+" milliseconds");
} public void outputDataToFile(List outputList, String outputFileName) {
try {
OutputStreamWriter osw = new OutputStreamWriter(
new FileOutputStream(new File(outputFileName)));
for (int i = 0; i < outputList.size(); i++) { try {
osw.write(outputList.get(i).toString());
osw.write("\r\n");
} catch (IOException e) {
e.printStackTrace();
}
}
osw.flush();
osw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} public List readSortAndReturnList() {
List<String> list = new ArrayList<String>();
String singleLineString = null;
try {
BufferedReader br = new BufferedReader(new FileReader("data.txt"));
do {
singleLineString = br.readLine();
if (singleLineString != null) {
list.add(singleLineString);
}
} while (singleLineString != null);
Collections.sort(list);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} return list;
}
}/*
now start
processing
mission complete
Total cost: 981 milliseconds
*/
java自身的sort方法应该实现是rb tree