62,614
社区成员
发帖
与我相关
我的任务
分享
package dmiaes.client.view;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class BookCounterImpl implements BookCounter {
/**
* 无参构造函数
*/
public BookCounterImpl(){
}
@Override
/**
* @param userBooks
* 人员的借阅记录。其中Map的key为公司人员的工号,value是这个人所借过的书的书号。
* @return 每本书被多少人借过。其中Map的key是书的书号,value是借过这本书的人数
*/
public Map<String, Integer> count(Map<String, Set<String>> userBooks) {
//存放结果的map
Map<String, Integer> resultMap = new HashMap<String, Integer>();
//开始逐行翻阅资料
for (Map.Entry<String, Set<String>> entry : userBooks.entrySet()) {
//单人的借阅情况
Iterator<String> it = entry.getValue().iterator();
//根据单人借阅情况,加入结果map
while(it.hasNext()){
String bookID = it.next();
//已录入的书号,只需要借阅次数加1,否则录入新书号,并设置借阅次数为1
if(resultMap.containsKey(bookID)){
resultMap.put(bookID, resultMap.get(bookID)+1);
}else{
resultMap.put(bookID, 1);
}
}
}
return resultMap;
}
/**
* @param args
*/
public static void main(String[] args) {
BookCounter bc = new BookCounterImpl();
Set<String> set1 = new HashSet<String>();
set1.add("a");
set1.add("b");
set1.add("c");
set1.add("f");
Set<String> set2 = new HashSet<String>();
set2.add("d");
set2.add("b");
set2.add("c");
Set<String> set3 = new HashSet<String>();
set3.add("a");
set3.add("b");
set3.add("d");
Map<String, Set<String>> map = new HashMap<String, Set<String>>();
map.put("person1", set1);
map.put("person2", set2);
map.put("person3", set3);
Map<String, Integer> countsMap = bc.count(map);
for(Iterator<String> i = countsMap.keySet().iterator();i.hasNext();){
String key = i.next();
System.out.println(key + " : " + countsMap.get(key));
}
}
}
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class BookCounterImpl implements BookCounter {
/**
* @param userBooks
* 人员的借阅记录。其中Map的key为公司人员的工号,value是这个人所借过的书的书号。
* @return 每本书被多少人借过。其中Map的key是书的书号,value是借过这本书的人数
*/
@Override
public Map<String, Integer> count(Map<String, Set<String>> userBooks) {
Map<String, Integer> map = new HashMap<String, Integer>();
// 所有的书
Set<String> books = new HashSet<String>();
Set<String> keySet = userBooks.keySet();
Iterator<String> it = keySet.iterator();
while (it.hasNext()) {
Set<String> bs = userBooks.get(it.next());
for (String b : bs) {
if (!books.contains(b)) {
books.add(b);
}
}
}
for (String b : books) {
Integer count = 0;
Iterator<String> it2 = keySet.iterator();
while (it2.hasNext()) {
String n = it2.next();
Set<String> bs = userBooks.get(n);
for (String b2 : bs) {
if(b.equals(b2)){
count++;
}
}
}
map.put(b, count);
}
return map;
}
}
public class TestCount {
public interface BookCounter {
/**
* @param userBooks
* 人员的借阅记录。其中Map的key为公司人员的工号,value是这个人所借过的书的书号。
* @return 每本书被多少人借过。其中Map的key是书的书号,value是借过这本书的人数
*/
Map<String, Integer> count(Map<String, Set<String>> userBooks);
}
public class BookCounterImpl implements BookCounter {
@Override
public Map<String, Integer> count(Map<String, Set<String>> userBooks) {
Map<String, Integer> counts = new HashMap<String, Integer>();
Set<String> ubKeys = userBooks.keySet();
for(Iterator<String> i = ubKeys.iterator();i.hasNext();){
Set<String> ubValue = userBooks.get(i.next());
for(Iterator<String> ite = ubValue.iterator();ite.hasNext();){
String countKey = ite.next();
Integer inte = counts.get(countKey);
if(inte == null){
inte = 0;
}
inte++;
counts.put(countKey, inte);
}
}
return counts;
}
}
public static void main(String[] args) {
BookCounter bc = new TestCount().new BookCounterImpl();
Set<String> set1 = new HashSet<String>();
set1.add("a");
set1.add("b");
set1.add("c");
set1.add("f");
Set<String> set2 = new HashSet<String>();
set2.add("d");
set2.add("b");
set2.add("c");
Set<String> set3 = new HashSet<String>();
set3.add("a");
set3.add("b");
set3.add("d");
Map<String, Set<String>> map = new HashMap<String, Set<String>>();
map.put("person1", set1);
map.put("person2", set2);
map.put("person3", set3);
Map<String, Integer> countsMap = bc.count(map);
for(Iterator<String> i = countsMap.keySet().iterator();i.hasNext();){
String key = i.next();
System.out.println(key + " : " + countsMap.get(key));
}
}
}
[/quote]public class TestCount {
public interface BookCounter {
/**
* @param userBooks
* 人员的借阅记录。其中Map的key为公司人员的工号,value是这个人所借过的书的书号。
* @return 每本书被多少人借过。其中Map的key是书的书号,value是借过这本书的人数
*/
Map<String, Integer> count(Map<String, Set<String>> userBooks);
}
public class BookCounterImpl implements BookCounter {
@Override
public Map<String, Integer> count(Map<String, Set<String>> userBooks) {
Map<String, Integer> counts = new HashMap<String, Integer>();
Set<String> ubKeys = userBooks.keySet();
for(Iterator<String> i = ubKeys.iterator();i.hasNext();){
Set<String> ubValue = userBooks.get(i.next());
for(Iterator<String> ite = ubValue.iterator();ite.hasNext();){
String countKey = ite.next();
Integer inte = counts.get(countKey);
if(inte == null){
inte = 0;
}
inte++;
counts.put(countKey, inte);
}
}
return counts;
}
}
public static void main(String[] args) {
BookCounter bc = new TestCount().new BookCounterImpl();
Set<String> set1 = new HashSet<String>();
set1.add("a");
set1.add("b");
set1.add("c");
set1.add("f");
Set<String> set2 = new HashSet<String>();
set2.add("d");
set2.add("b");
set2.add("c");
Set<String> set3 = new HashSet<String>();
set3.add("a");
set3.add("b");
set3.add("d");
Map<String, Set<String>> map = new HashMap<String, Set<String>>();
map.put("person1", set1);
map.put("person2", set2);
map.put("person3", set3);
Map<String, Integer> countsMap = bc.count(map);
for(Iterator<String> i = countsMap.keySet().iterator();i.hasNext();){
String key = i.next();
System.out.println(key + " : " + countsMap.get(key));
}
}
}