1 、淘宝新产品研发中心目前有 109 位店小二,每位小二有一个武侠花名,都出自经典武侠小说,如笑傲江湖等。
假设:花名已知,而且每个花名出处明确,数据存放文本文件(格式自拟);
问题:用 JAVA 和注释型的伪码写程序,计算每类出处有多少花名。
//data.xml
<?xml version="1.0" encoding="UTF-8"?>
<waiterroot>
<waiter>
<id>0</id>
<type>笑傲江湖</type>
<name>zdz</name>
</waiter>
<waiter>
<id>1</id>
<type>天龙八部</type>
<name>zdz</name>
</waiter>
<waiter>
<id>2</id>
<type>神雕侠侣</type>
<name>zdz</name>
</waiter>
<waiter>
<id>3</id>
<type>笑傲江湖</type>
<name>zdz</name>
</waiter>
<waiter>
<id>4</id>
<type>风云争霸</type>
<name>zdz</name>
</waiter>
<waiter>
<id>5</id>
<type>神雕侠侣</type>
<name>zdz</name>
</waiter>
</waiterroot>
------------------------------------------------------------------
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Test {
public static void main(String[] args) throws Exception {
SAXReader sax = new SAXReader();
File f = new File("data.xml");
Document doc = sax.read(f);
Element root = doc.getRootElement();
Map map = new HashMap();
for(Iterator it = root.elementIterator();it.hasNext();){
Element element = (Element) it.next();//waiter
for ( Iterator it2 = element.elementIterator(); it2.hasNext(); ) {
Element elementInner = (Element) it2.next();
if(elementInner.getName().equals("type")){
String size = (String) map.get(elementInner.getText());
if(size != null){
int i = Integer.parseInt(size)+1;
map.put(elementInner.getText(),String.valueOf(i));
}else{
map.put(elementInner.getText(),String.valueOf(1));
}
}
}
}
Set set = map.entrySet();
Iterator it3 = set.iterator();
while(it3.hasNext()){
System.out.println(it3.next());
}
}
}
//结果:
风云争霸=1
神雕侠侣=2
天龙八部=1
笑傲江湖=2