import java.io.BufferedReader; import java.io.FileReader; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Interview { private HashMap<String, HashSet<String>> numberMap = new HashMap<String, HashSet<String>>(); private HashMap<String, HashSet<String>> nameMap = new HashMap<String, HashSet<String>>(); public static void main(String[] args){ Interview interview = new Interview(); //interview.readFileIntoParam(args[0]); interview.readFileIntoParam("D://WAH//workspace//Test//src//test"); interview.test1("oikh"); interview.test2(""); interview.test3("oikh"); interview.test4(3); } public void readFileIntoParam(String fileName) { try { BufferedReader reader = new BufferedReader(new FileReader(fileName)); reader.readLine(); String line = null; while((line=reader.readLine())!=null){ String item[] = line.split(","); if(nameMap.get(item[0])!=null) { HashSet tmp = nameMap.get(item[0]); tmp.add(item[1]); }else { HashSet tmp = new HashSet(); tmp.add(item[1]); nameMap.put(item[0], tmp); } if(numberMap.get(item[1])!=null) { HashSet tmp = numberMap.get(item[1]); tmp.add(item[0]); }else { HashSet tmp = new HashSet(); tmp.add(item[0]); numberMap.put(item[1], tmp); } } } catch (Exception e) { e.printStackTrace(); } } public void test1(String givenName){ if(nameMap.get(givenName)!=null) { HashSet<String> numberSet = nameMap.get(givenName); Iterator<String> it = numberSet.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } } public void test2(String givenNum){ if(numberMap.get(givenNum)!=null) { HashSet<String> nameSet = numberMap.get(givenNum); Iterator<String> it = nameSet.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } } public void test3(String givenName){ if(nameMap.get(givenName)!=null) { HashSet<String> numberSet = nameMap.get(givenName); Iterator<String> it = numberSet.iterator(); while(it.hasNext()){ String number = it.next(); //print corresponding number System.out.println(number); if(numberMap.get(number)!=null) { HashSet<String> nameSet = numberMap.get(number); Iterator<String> nameIt = nameSet.iterator(); while(nameIt.hasNext()){ //print number's related name System.out.println(nameIt.next()); } } } } } public void test4(int N) { HashMap<Integer, String> newCollection = new HashMap<Integer, String>(); Set<String> keySet = nameMap.keySet(); Iterator<String> tmpkeyIterator = keySet.iterator(); while(tmpkeyIterator.hasNext()){ String tmpName = tmpkeyIterator.next(); int nameMatchNumberSize = nameMap.get(tmpName).size(); newCollection.put(new Integer(nameMatchNumberSize), tmpName); } //print N smallest items for(int i=1; i<=N; i++){ if(newCollection.get(new Integer(i))!=null) { System.out.println(newCollection.get(new Integer(i))); } } } }
Just A test
猜你喜欢
转载自jasonliu8.iteye.com/blog/2259695
今日推荐
周排行