package score;import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map;public class Test { static List<User> list = new ArrayList<User>(); //用户列表
public static void main(String[] args) throws Exception {
String userId = "0"; //楼主 int sum = 100; //总分 int n = 0; //回复人数 //初始化用户列表 User u0 = new User(); u0.setId("0"); u0.setName("0"); u0.setScore(0); list.add(u0);
User u1 = new User(); u1.setId("1"); u1.setName("1"); u1.setScore(10); list.add(u1);
User u2 = new User(); u2.setId("2"); u2.setName("2"); u2.setScore(20); list.add(u2);
User u3 = new User(); u3.setId("3"); u3.setName("3"); u3.setScore(30); list.add(u3);
/*回复list*/ List<Re> rList = new ArrayList<Re>(); Re r1 = new Re(); r1.setReId("1"); r1.setDate("2009-02-12 09:10"); rList.add(r1);
Re r2 = new Re(); r2.setReId("2"); r2.setDate("2009-10-10 10:20"); rList.add(r2);
Re r3 = new Re(); r3.setReId("3"); r3.setDate("2010-01-15 15:30"); rList.add(r3);
Re r4 = new Re(); r4.setReId("2"); r4.setDate("2010-02-10 10:40"); rList.add(r4);
Re r5 = new Re(); r5.setReId("0"); r5.setDate("2009-07-06 08:50"); rList.add(r5);
List<User> returnlist = new ArrayList<User>();
//计算回复人数,去除重复,除去楼主自己 Map<String, String> reMap = new HashMap<String, String>(); //回复的人 for (Iterator iter = rList.iterator(); iter.hasNext();) { Re r = (Re) iter.next(); String id = r.getReId(); if (!id.equals(userId)) { if (!reMap.containsKey(id)) { reMap.put(id, id); n++; } } }
int pr = sum/n; //平均分 int yu = sum - pr*n; //不能整除,余数
//给回复的人平均分配分数 for (Iterator iter = reMap.values().iterator(); iter.hasNext();) { String id = (String) iter.next(); User u = getUserById(id); int score = u.getScore(); u.setScore(score + pr); returnlist.add(u); } //有余数,返回给楼主 // if (yu > 0) { User u = getUserById(userId); int score = u.getScore(); u.setScore(score + yu); returnlist.add(u); // }
System.out.println(pr); } public static User getUserById(String id) { User u = null; for (Iterator iter = list.iterator(); iter.hasNext();) { u = (User) iter.next(); if (u.getId().equals(id)) { break; } } return u; } }
public class Reply { private int id;
private int Score; // getter, setter;
}
// 总分
int totalScore = 100;
// 初始化所有回帖
List<Reply> list = new ArrayList<Reply>();
list.add(new Reply(){{ setId(1); }});
list.add(new Reply(){{ setId(2); }});
list.add(new Reply(){{ setId(3); }});
list.add(new Reply(){{ setId(4); }});
list.add(new Reply(){{ setId(5); }});
list.add(new Reply(){{ setId(5); }});
list.add(new Reply(){{ setId(6); }});
// 临时变量,滤重用
Set<Integer> set = new HashSet<Integer>();
// 计算平均给分
for (Reply reply : list) {
set.add(reply.getId());
}
int scorePerReply = totalScore / set.size();
// 给分
set.clear();
for (Reply reply : list) {
if (!set.contains(reply.getId())) {
reply.setScore(scorePerReply);
set.add(reply.getId());
}
}
// 打印
for (Reply reply : list) {
System.out.println( reply.getId() + ":" + reply.getScore());
}
JF
看不懂~
初学jsp
具体实现没想~!
package score;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;public class Test { static List<User> list = new ArrayList<User>(); //用户列表
public static void main(String[] args) throws Exception {
String userId = "0"; //楼主
int sum = 100; //总分
int n = 0; //回复人数 //初始化用户列表
User u0 = new User();
u0.setId("0");
u0.setName("0");
u0.setScore(0);
list.add(u0);
User u1 = new User();
u1.setId("1");
u1.setName("1");
u1.setScore(10);
list.add(u1);
User u2 = new User();
u2.setId("2");
u2.setName("2");
u2.setScore(20);
list.add(u2);
User u3 = new User();
u3.setId("3");
u3.setName("3");
u3.setScore(30);
list.add(u3);
/*回复list*/
List<Re> rList = new ArrayList<Re>(); Re r1 = new Re();
r1.setReId("1");
r1.setDate("2009-02-12 09:10");
rList.add(r1);
Re r2 = new Re();
r2.setReId("2");
r2.setDate("2009-10-10 10:20");
rList.add(r2);
Re r3 = new Re();
r3.setReId("3");
r3.setDate("2010-01-15 15:30");
rList.add(r3);
Re r4 = new Re();
r4.setReId("2");
r4.setDate("2010-02-10 10:40");
rList.add(r4);
Re r5 = new Re();
r5.setReId("0");
r5.setDate("2009-07-06 08:50");
rList.add(r5);
List<User> returnlist = new ArrayList<User>();
//计算回复人数,去除重复,除去楼主自己
Map<String, String> reMap = new HashMap<String, String>(); //回复的人
for (Iterator iter = rList.iterator(); iter.hasNext();) {
Re r = (Re) iter.next();
String id = r.getReId();
if (!id.equals(userId)) {
if (!reMap.containsKey(id)) {
reMap.put(id, id);
n++;
}
}
}
int pr = sum/n; //平均分
int yu = sum - pr*n; //不能整除,余数
//给回复的人平均分配分数
for (Iterator iter = reMap.values().iterator(); iter.hasNext();) {
String id = (String) iter.next();
User u = getUserById(id);
int score = u.getScore();
u.setScore(score + pr);
returnlist.add(u);
}
//有余数,返回给楼主
// if (yu > 0) {
User u = getUserById(userId);
int score = u.getScore();
u.setScore(score + yu);
returnlist.add(u);
// }
System.out.println(pr);
} public static User getUserById(String id) {
User u = null;
for (Iterator iter = list.iterator(); iter.hasNext();) {
u = (User) iter.next();
if (u.getId().equals(id)) {
break;
}
}
return u;
}
}