高手帮帮忙,一道笔试题 本帖最后由 xiaanming 于 2012-12-12 10:46:58 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 |---http |---ting |---baidu |---com |---song |---1670643|---http |---ting |---baidu |---com |---song |---1400921|---http |---ting |---baidu |---com |---song |---1263029 import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;public class CsdnTestSort { /** * * @param file 文件内容以楼主给的例子相同。 * @return * @throws Exception */ public static List<String[]> loadFile(File file) throws Exception{ //存放有几组数据。 List<String[]> list = new ArrayList<String[]>(); BufferedReader bfr = new BufferedReader(new FileReader(file)); String str = null; while(null!=(str=bfr.readLine())){ String[] array = str.split("\\."); list.add(array); //读取一行作为一组数据。 // System.out.println(array.length); } return list; } //得到有多少层,多一层前面就多两个空格 public static void getSpace(int index){ for(int i =0;i<index;i++){ System.out.print(" "); } } public static void sortAll(List<String[]> list){ //set用来存放每一组的,第一个元素。 Set<String> set = new HashSet<String>(); for(int i = 0; i<list.size();i++){ String[] array = list.get(i); int number=array.length; int flag =0;//默认情况下是 头元素是没有重复的。 //如果重复了,让flag变为1方面循环打印的时候不打印第一个元素。 if(set.contains(array[0])){ flag=1; } for(int j=flag;j<number;j++){ getSpace(j);// 打印空格。 System.out.print("|---"+array[j]); System.out.println(); } set.add(array[0]); //把头元素加入到set,就可以判断下一次是否有重复的头元素。 } } public static void main(String[] args) throws Exception { sortAll(loadFile(new File("text.txt"))); }} import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashSet;import java.util.List;import java.util.Set;public class CsdnTestSort { /** * * @param file 文件内容以楼主给的例子相同。 * @return * @throws Exception */ public static List<String[]> loadFile(File file) throws Exception{ //存放有几组数据。 List<String[]> list = new ArrayList<String[]>(); BufferedReader bfr = new BufferedReader(new FileReader(file)); String str = null; while(null!=(str=bfr.readLine())){ String[] array = str.split("\\."); list.add(array); //读取一行作为一组数据。 // System.out.println(array.length); } return list; } //得到有多少层,多一层前面就多两个空格 public static void getSpace(int index){ for(int i =0;i<index;i++){ System.out.print(" "); } } public static void sortAll(List<String[]> list){ //set用来存放每一组的,第一个元素。 Collections.sort(list,new DeComparator()); Set<String> set = new HashSet<String>(); for(int i = 0; i<list.size();i++){ String[] array = list.get(i); int number=array.length; int flag =0;//默认情况下是 头元素是没有重复的。 //如果重复了,让flag变为1方面循环打印的时候不打印第一个元素。 if(set.contains(array[0])){ flag=1; } for(int j=flag;j<number;j++){ getSpace(j);// 打印空格。 System.out.print("|---"+array[j]); System.out.println(); } set.add(array[0]); //把头元素加入到set,就可以判断下一次是否有重复的头元素。 } } public static void main(String[] args) throws Exception { sortAll(loadFile(new File("text.txt"))); }} class DefineComparator implements Comparator{ @Override public int compare(Object o1, Object o2) { return 0; } } class DeComparator implements Comparator{ @Override public int compare(Object o1, Object o2) { String[] str1 = (String[])o1; String[] str2 = (String[])o2; return str1[0].compareTo(str2[0]); } }这是最完整的 java的内存问题 Socket问题 Connection reset? 请问各位,这句话什么意思???关于继承 请各位大大给个建议,小弟要去IBM研发中心面试 任何在sqlserver2000中给image类型的字段设置默认值 Jtree中如何获取相关信息???? C和java的转换问题 请大家来测试我的中文分词(带人名识别)模块 为何不能把String 写入文件? 我该怎么样设置寻找类文件默认目录,可以使我在任何目录下javac,都可以找到我默认目录里的cls? 我写ServerSocket读取Http协议时停止了,求解释!! 小段代码求优化
|---ting
|---baidu
|---com
|---song
|---1670643
|---http
|---ting
|---baidu
|---com
|---song
|---1400921
|---http
|---ting
|---baidu
|---com
|---song
|---1263029
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class CsdnTestSort {
/**
*
* @param file 文件内容以楼主给的例子相同。
* @return
* @throws Exception
*/
public static List<String[]> loadFile(File file) throws Exception{
//存放有几组数据。
List<String[]> list = new ArrayList<String[]>();
BufferedReader bfr = new BufferedReader(new FileReader(file));
String str = null;
while(null!=(str=bfr.readLine())){
String[] array = str.split("\\.");
list.add(array); //读取一行作为一组数据。
// System.out.println(array.length);
}
return list;
}
//得到有多少层,多一层前面就多两个空格
public static void getSpace(int index){
for(int i =0;i<index;i++){
System.out.print(" ");
}
}
public static void sortAll(List<String[]> list){
//set用来存放每一组的,第一个元素。
Set<String> set = new HashSet<String>();
for(int i = 0; i<list.size();i++){
String[] array = list.get(i);
int number=array.length;
int flag =0;//默认情况下是 头元素是没有重复的。
//如果重复了,让flag变为1方面循环打印的时候不打印第一个元素。
if(set.contains(array[0])){
flag=1;
}
for(int j=flag;j<number;j++){
getSpace(j);// 打印空格。
System.out.print("|---"+array[j]);
System.out.println();
}
set.add(array[0]); //把头元素加入到set,就可以判断下一次是否有重复的头元素。
}
}
public static void main(String[] args) throws Exception {
sortAll(loadFile(new File("text.txt")));
}
}
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set;public class CsdnTestSort {
/**
*
* @param file 文件内容以楼主给的例子相同。
* @return
* @throws Exception
*/
public static List<String[]> loadFile(File file) throws Exception{
//存放有几组数据。
List<String[]> list = new ArrayList<String[]>();
BufferedReader bfr = new BufferedReader(new FileReader(file));
String str = null;
while(null!=(str=bfr.readLine())){
String[] array = str.split("\\.");
list.add(array); //读取一行作为一组数据。
// System.out.println(array.length);
}
return list;
}
//得到有多少层,多一层前面就多两个空格
public static void getSpace(int index){
for(int i =0;i<index;i++){
System.out.print(" ");
}
}
public static void sortAll(List<String[]> list){
//set用来存放每一组的,第一个元素。
Collections.sort(list,new DeComparator());
Set<String> set = new HashSet<String>();
for(int i = 0; i<list.size();i++){
String[] array = list.get(i);
int number=array.length;
int flag =0;//默认情况下是 头元素是没有重复的。
//如果重复了,让flag变为1方面循环打印的时候不打印第一个元素。
if(set.contains(array[0])){
flag=1;
}
for(int j=flag;j<number;j++){
getSpace(j);// 打印空格。
System.out.print("|---"+array[j]);
System.out.println();
}
set.add(array[0]); //把头元素加入到set,就可以判断下一次是否有重复的头元素。
}
}
public static void main(String[] args) throws Exception {
sortAll(loadFile(new File("text.txt")));
}
} class DefineComparator implements Comparator{ @Override
public int compare(Object o1, Object o2) {
return 0;
}
}
class DeComparator implements Comparator{ @Override
public int compare(Object o1, Object o2) {
String[] str1 = (String[])o1;
String[] str2 = (String[])o2;
return str1[0].compareTo(str2[0]);
}
}
这是最完整的