是这样的,给一组数据 比如
13712345670
13712345671
13712345672
13712345673
13712345674
13712345675
13712345676
13712345677
13712345678
13712345679
13712345670
就可以合并为一个字冠1371234567
如果数据中还有
1371234560
1371234561
1371234562
1371234563
1371234564
1371234565
1371234566
1371234568
1371234569
就还可以合并成
137123456
最后剩下的就是一些不能在合并的字冠组;
比如中国所有理论上的手机号码做输入数据的话,最后的结果就是 13 和15
这样,每天都有很多很多很多条数据,比如200w条在sql server里我的方法是做一颗树,然后每个节点有10个叶子就剪掉他的叶子,让这个节点做叶子。
但是这样要把整个数据都读到内存。各位大大有没有什么更好的办法。er……,说那么多,不知道描述清楚了没
13712345670
13712345671
13712345672
13712345673
13712345674
13712345675
13712345676
13712345677
13712345678
13712345679
13712345670
就可以合并为一个字冠1371234567
如果数据中还有
1371234560
1371234561
1371234562
1371234563
1371234564
1371234565
1371234566
1371234568
1371234569
就还可以合并成
137123456
最后剩下的就是一些不能在合并的字冠组;
比如中国所有理论上的手机号码做输入数据的话,最后的结果就是 13 和15
这样,每天都有很多很多很多条数据,比如200w条在sql server里我的方法是做一颗树,然后每个节点有10个叶子就剪掉他的叶子,让这个节点做叶子。
但是这样要把整个数据都读到内存。各位大大有没有什么更好的办法。er……,说那么多,不知道描述清楚了没
package com.lihan;public class testNum {
public Long sum(Long[] i){
Long max=i[0];
for(int k=0;k<i.length;k++)
{
if(i[k]>max)
{
max=i[k];
}
}
return max;
} /**
* @param args
* @author 李晗
*/
public static void main(String[] args) {
String[] num={"13712345671","13712345672","13712345673","13712345674","13712345675","13712345676","13712345677","13712345678"};
Long[] j=new Long[num.length];
for(int i=0;i<num.length;i++)
{
j[i]=Long.parseLong(num[i]);
}
testNum t=new testNum();
Long sum=t.sum(j);
String str=String.valueOf(sum);
String s=num[0];
for(int x=0;x<s.length();x++)
{
if(str.charAt(x)==s.charAt(x))
{
System.out.print(str.charAt(x));
}
}
// TODO Auto-generated method stub }}直接运行即可