算法理论参考:http://www.biaodianfu.com/fackbook-facemash-algorithm.html

实现:

import java.util.List;

public class User {

private String name; //用户名

private double integral; //积分

private double rank; //排名

public User(String name,double integral,int rank){

this.name = name;

this.integral = integral;

this.rank = rank;

}

public User(){

}

/**

* 得到用户积分排名

* @return

*/

public int getUserRanking(){

int result = 0;

return result;

}

public String getName() {

return name;

}

public String getNameString() {

return getName();

}

public Double getIntegral(){

return integral;

}

public double getIntegralString()

{

return getIntegral();

}

public void getNewIntegral(double a){

this.integral = a;

}

public double getRank(){

return rank;

}

public double getRankString()

{

return getRank();

}

public void getNewRank(double a){

this.rank = a;

}

/**

* 得到用户名 积分 排名次

* @return

*/

public String getUserString()

{

return getRankString()+": "+getNameString()+" "+

" "+getIntegralString();

}

/**

* 打印用户信息

* @return

*/

public static String getOutputUser(List User)

{

String result="";

for (int i = 0; i < User.size(); i++)

{

User item=(User)User.get(i);

result+=item.getUserString()+"\r\n";

}

return result;

}

}

import java.util.ArrayList;import java.util.Comparator;

import java.util.List;

import java.util.ArrayList;

import java.util.Collections;

public class UserItem {

public static void main(String[] args)

{

// TODO Auto-generated method stub

test1();

}

public static void test1()

{

User p=new User("WangLei",0.55,1);

User p2=new User("YangJiang",0.54,2);

User p3=new User("XuePeng",0.53,3);

User p4=new User("ZhuKai",0.52,4);

User p5=new User("ZhenShan",0.51,5);

List list=new ArrayList();

list.add(p);

list.add(p2);

list.add(p3);

list.add(p4);

list.add(p5);

System.out.println(User.getOutputUser(list));

match aa = new match();

aa.setUser(p,p2);

aa.setExpect();

aa.setScore();

p.getNewIntegral(aa.setIntegral_a());

p2.getNewIntegral(aa.setIntegral_b());

aa.setUser(p3,p4);

aa.setExpect();

aa.setScore();

p3.getNewIntegral(aa.setIntegral_a());

p4.getNewIntegral(aa.setIntegral_b());

aa.setUser(p3,p5);

aa.setExpect();

aa.setScore();

p3.getNewIntegral(aa.setIntegral_a());

p5.getNewIntegral(aa.setIntegral_b());

aa.setUser(p2,p4);

aa.setExpect();

aa.setScore();

p2.getNewIntegral(aa.setIntegral_a());

p4.getNewIntegral(aa.setIntegral_b());

System.out.println(User.getOutputUser(list));

comparatorUser comparator=new comparatorUser();

Collections.sort(list, comparator);

for (int i=0;i

User user_temp=(User)list.get(i);

user_temp.getNewRank(list.size()-i);

}

System.out.println(User.getOutputUser(list));

}

}

import java.lang.Math;

public class match {

private User user_a;

private User user_b;

private double expect_a = 0;

private double expect_b = 0;

private double score_a = 0;

private double score_b = 0;

private double score = 0;

/**

* 得到比赛结果

* @return

*/

public double getScore()

{

if(score == 0)

{

score = 1;

}

else

{

score = 0;

}

return score;

}

//public static long pow(double x,double y)

/**

* 得到成功期望

* @return

*/

public double getExpect_a()

{

double result = 0;

//1/(1+10^((Ib-Ia)/400))

result = 1/(1 + Math.pow(10, (user_b.getIntegral()-user_a.getIntegral())/400));

return result;

}

public double getExpect_b()

{

double result = 0;

//1/(1+10^((Ia-Ib)/400))

result = 1/(1 + Math.pow(10, (user_a.getIntegral()-user_b.getIntegral())/400));

return result;

}

/**

* 得到比赛后积分

* @return

*/

public double setIntegral_a()

{

//user_a.getIntegral() = user_a.getIntegral() + score_a - expect_a

return user_a.getIntegral() + score_a - expect_a;

}

public double setIntegral_b()

{

return user_b.getIntegral() + score_b - expect_b;

}

public void setUser(User a,User b)

{

this.user_a = a;

this.user_b = b;

}

public void setExpect()

{

this.expect_a = getExpect_a();

this.expect_b = getExpect_b();

}

public void setScore()

{

this.score_a = getScore();

this.score_b = getScore();

}

}

import java.util.Comparator;

import java.util.List;

import java.util.ArrayList;

import java.util.Collections;

public class comparatorUser implements Comparator{

public int compare(Object arg0, Object arg1) {

User user0=(User)arg0;

User user1=(User)arg1;

int flag =0;

flag = user0.getIntegral().compareTo(user1.getIntegral());

return flag;

}

}

学习心得:

1 import java.util.List;

import java.util.ArrayList;

熟悉List与ArrayList类的部分用法,如插入等操作;

扩展:http://blog.sina.com.cn/s/blog_68f262210100mape.html

http://jingyan.baidu.com/article/851fbc37d844553e1f15abe1.html

2 import java.lang.Math;

熟悉Math类下指数运算;

扩展:http://wxb-j2ee.iteye.com/blog/1010258

http://blog.csdn.net/lixiang0522/article/details/7557851

http://www.cnblogs.com/ksuifeng/archive/2010/03/24/1693856.html

3 import java.util.Comparator;

import java.util.Collections;

熟悉Comparator与Collections类,结合ArrayList类,实现数组的排序;

扩展:http://www.blogjava.net/zygcs/archive/2008/01/17/176032.html

http://www.cnblogs.com/fzzl/archive/2010/08/14/1799408.html

http://blog.csdn.net/toweryangtao/article/details/7518325

4 解决问题:

java 提示cannot invoke compareTo(double) on the primitive type double

原因:

错误代码缘由:flag = user0.getIntegral().compareTo(user1.getIntegral());

解决办法: 把对象的getIntegral方法设为Double 而不是double;

public Double getIntegral(){

return integral;

}

5 MyEclipse

http://www.baidu.com/s?wd=myeclipse字体大小设置&tn=11000002_ie_dg

java 社交网站_java学习之电影《社交网络》Facemash算法实现相关推荐

  1. java 学习网站_Java学习必不可少的十大网站

    这是我为学习java的同学们准备的网站集合.这些网站提供新闻,常见问题或访谈问题的答案,精彩的讲座等.质量是好的网站的关键因素.我认为它们都具有最高的质量.在下文中,我还将分享如何使用这些网站进行学习 ...

  2. java 社交网站_基于jsp的社交网站-JavaEE实现社交网站 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的社交网站, 该项目可用各类java课程设计大作业中, 社交网站的系统架构分为前后台两部分, 最终实现在线上进行社交 ...

  3. java 字符串分词_Java实现的双向匹配分词算法示例

    本文实例讲述了Java实现的双向匹配分词算法.分享给大家供大家参考,具体如下: 目前比较流行的几大分词算法有:基于字符串匹配的分词方法.基于理解的分词方法和基于统计的分词方法.本文采用的是基于字符串匹 ...

  4. android xml java混合编程_Java学习中注解与多线程,网络编程与XML技术

    本部分内容主要有集合框架及泛型,实用类,输入和输出处理,注解与多线程,网络编程与XML技术.初次学习这部分会感觉很难,主要是概念难于理解,最好是多看看例子,多练习.下面是个人的总结 拉勾IT课小编为大 ...

  5. java 组件 接口_java学习之图形用户接口AWT组件部分

    记录学习Java私塾Java视频培训教程中级-9 图形用户接口AWT组件部分 学习视频资源分享: 地址:http://pan.baidu.com/s/1eSDiZAi 密码:lvy6 PS:视频的画质 ...

  6. java helloworld代码_java学习应用篇|逃不掉的HelloWorld

    本文知识点 1.表白不是发起进攻的冲锋号,而是吹响胜利的号角 2.除了爱情不讲道理,公理也不讲道理 3.这世界,离了javac,也是可以运行的! 4.Hello,寺水 写程序并不是写代码 看前面啰啰嗦 ...

  7. java自学难点_java学习重难点

    三人行必有我师,人生是需要不断学习的,在这里我们相遇就是缘分,希望各位可以看完这篇文章,也欢迎大家在下面留言讨论,天冷了,也动动手指转发收藏一下,谢谢大家! 在Java中修饰符总共有一下几种: 1.访 ...

  8. java 内存类_Java学习——类的生命周期和内存

    常识是本能,有足够的常识便是天才.--肖伯纳 一.类的生命周期 类的生命周期:1.加载:将二进制流加载进来.class 2.连接: 验证:确保加载进来的数据不会损害虚拟机 准备:为类变量分配内存,附默 ...

  9. 学习java的步骤_java学习的基本步骤

    Java是一个通用的编程语言,其实可以干很多事,怎么学Java就看怎么用了.但有一些基本的步骤: 熟悉一种文本编辑器, 比如:Vim, Emacs, Notepad++, TextMate等.知道哪些 ...

  10. java的圆周率_java学习日记,圆周率的打印

    前段时间看到听说学习java每天写技术贴会对自己提升很大,我现在学习java也就2个周,算不上技术贴,就写写学习日记吧. 昨天师傅给我出了一道题,说是试试用java打印圆周率. 刚开始我的思路是,如果 ...

最新文章

  1. javascript之判断专题
  2. SQL语句在数据库中是如何执行的
  3. Linux中printk和strace命令调试的一些技巧
  4. Spring的AOP理解
  5. 学习数字图像处理经验谈
  6. html计时器组件,vue 计时器组件的实现代码
  7. 等待读取完毕 java_java – 等待来自客户端读取消息的套接字服务器
  8. Httpd2.4简介及CenOS6.6下编译安装
  9. 思维导图,UML在线画图工具
  10. 产品 电信nb接口调用_【IoT】物联网NB-IoT之电信物联网开放平台对接流程浅析
  11. Win7 32 不能安装STM32 虚拟串口驱动解决方法
  12. Matlab GUI编程技巧(十七):Matlab GUI设计总结
  13. 多测师肖sir_高级讲师_第2个月第17讲讲解接口面试题
  14. python信息处理 WXQ 153
  15. Future.get()抛出ExecutionException或InterruptedException?
  16. cad指北针lisp_用CAD里的LISP画图,题目如图片,编写一程序,可在任意位置任意方向绘制指定大小的指北针。...
  17. android 友盟统计 简单上手
  18. 研究生的压力应对与心理健康2022秋期末答案
  19. cad vba 打开文件对话框_AutoCAD VBA选择文件夹的代码
  20. 小孩学python有意义吗-少儿编程启蒙阶段有必要报班吗?看团妈的测评

热门文章

  1. Total Variation
  2. 电源 PFC(功率因数校正)电路拓扑,共计100多份,内含A PFC,连续断续,交错,维也纳,各功率段的PFC电路
  3. 局域网连接外网时,二级路由器设置
  4. MVX-Net: PointFusion 在mmdetection3d中的实现
  5. C++编程 杨辉三角
  6. 生日快乐程序_这家线下服装店,靠小程序做活动7天就获客6万
  7. 【干货分享】 淘宝客发朋友圈的技巧
  8. bbys_tu_2016(ret2text)
  9. 360Lib整体介绍
  10. qq拼音 搜狗拼音的对比