¶à·¹é²¢ÅÅÐò¡¾JAVAʵÏÖ¡¿
¶ÔÔ¶Ô¶´óÓÚÄÚ´æµÄÊý¾Ý½øÐÐÍâÅÅÐò£¬Ôڶ෱ȽϵÄʱºòÓðÜÕßÊ÷ЧÂÊ»á¸ü¸ß¡£
package my.sort;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Random;
/**
* »ùÓÚ´óÊý¾ÝÁ¿µÄÍâÅÅÐòËã·¨£¬·ÖΪ¶þ·¹ó±öºÍ¶à·¹é²¢
* @author java2king
* @link http://blog.csdn.net/Java2King
*
*/
public class ExternalSort {
public static int ITEM_COUNT = 10000000; //×ÜÊý
public static int BUFFER_SIZE = 1024*4*1000;// Ò»´Î»º³å¶ÁÈ¡
public static int FILE_COUNT = 1024*1000*1*4;// ÿ¸öÎļþµÄ¼Ç¼Êý1
public static File MAIN_FILE = new File("mainset");//ÒªÅÅÐòµÄÎļþ
/**
* ¶þ·¹é²¢
* @param file
* @return
* @throws IOException
*/
public File sort(File file) throws IOException {
ArrayList<File> files = split(file);
return process(files);
}
/**
* ¶à·¹é²¢
* @param file
* @throws IOException
*/
public void mSort(File file) throws IOException{
ArrayList<File> files = split(file);
multipleMerge(files);
}
// recursive method to merge the lists until we are left with a
// single merged list
private File process(ArrayList<File> list) throws IOException {
if (list.size() == 1) {
return list.get(0);
}
ArrayList<File> inter = new ArrayList<File>();
for (Iterator<File> itr = list.iterator(); itr.hasNext();) {
File one = itr.next();
if (itr.hasNext()) {
File two = itr.next();
inter.add(merge(one, two)
Ïà¹ØÎĵµ£º
ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖƵÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......
1990£1994£ºJavaÔµÆð
Larry Wall˵£¬ÓÅÐã³ÌÐòÔ±Ó¦ÓеÄÈý¸öÌصã:ÀÁ¶è¡¢¼±ÔêºÍ°ÁÂý¡£Java¾ÍÊǵ®ÉúÔÚһȺÀÁ¶è¡¢¼±Ôê¶ø°ÁÂýµÄ³ÌÐòÌì²ÅÖ®ÖС£
1990Äê12Ô£¬SunµÄ¹¤³ÌʦPatrick Naughton±»µ±Ê±Ôã¸âµÄSun C++¹¤¾ßÕÛÄ¥µÄ¿ì·èÁË¡£Ëû´óÉù±§Ô¹£¬²¢ÍþвҪÀ뿪SunתͶµ±Ê±ÔÚSteve JobsÁ쵼֮ϵÄNeXT¹«Ë¾¡£Áìµ¼²ãΪÁËÁôסËû£¬¸øËû ......
ʹÓÃWindows²Ù×÷ϵͳµÄÅóÓѶÔExcel£¨µç×Ó±í¸ñ£©Ò»¶¨²»»áÄ°Éú£¬µ«ÊÇҪʹÓÃJavaÓïÑÔÀ´²Ù×ÝExcelÎļþ²¢²»ÊÇÒ»¼þÈÝÒ×µÄÊ¡£ÔÚWebÓ¦ÓÃÈÕÒæÊ¢ÐеĽñÌ죬ͨ¹ýWebÀ´²Ù×÷ExcelÎļþµÄÐèÇóÔ½À´Ô½Ç¿ÁÒ£¬Ä¿Ç°½ÏΪÁ÷ÐеIJÙ×÷ÊÇÔÚJSP»òServlet Öд´½¨Ò»¸öCSV £¨comma separated values£©Îļþ£¬²¢½«Õâ¸öÎļþÒÔMIME£¬text/csvÀàÐÍ·µ»Ø¸øä¯ÀÀÆ ......
ͨ¹ýJAVAµ÷ÓÃORACLEµÄ´æ´¢¹ý³Ì£¬ÔÚORACLEµÄ´æ´¢¹ý³ÌÄÚ²¿×öÁËÒ»¸ö²éѯÔÚJAVAÖлñÈ¡¸Ã²éѯ½á¹û£¬Õâ¸öºÍSYBASE¡¢SQLSERVERµÄ»ñÈ¡²»Ò»Ñù£¬µÈÎÒµÄÏÂһƪÎÄÕÂÎÒ»á½éÉÜÈçºÎ»ñÈ¡SYBASE¡¢SQLSERVERÔÚ´æ´¢¹ý³ÌÖÐÖ´ÐÐÁ˲éѯºóÈçºÎ»ñÈ¡Æä½á¹û¼°´æ´¢¹ý³ÌµÄ±àд¡£
ÔÚOracleÖÐÐèÒª·µ»Ø²éѯ½á¹û¼¯£¬±ØÐ뽫ÆäÒÔÓαêµÄÐÎʽ·µ»Ø£¬µ«ÓαêÓÖ²»ÊÇ ......