• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > Mahout-HashMap的进化版FastByIdMap,mahout

Mahout-HashMap的进化版FastByIdMap,mahout

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含mahout实战中文版,mahout,mahout安装,mahout是什么,mahout实战等服务器相关知识,网友希望可以进行参考

Mahout-HashMap的进化版FastByIdMap,mahout


FastByIdMap是基于散列的,在处理冲突时是线性探测而非分离链接,这样就不必为每一个条目增加一个Map.Entry对象,从而节省内存开销。
下面代码是一个线性探测Map的Demo:

package com.example.mahout;

public class ArrayHashST_Linear_Probing<Key, Val> {
    private int M = 30001;
    private Key[] keys = (Key[]) new Object[M];
    private Val[] vals = (Val[]) new Object[M];

    private int hash(Key key) {
        return (key.hashCode() & 0x7fffffff) % M;
    }

    public void put(Key key, Val val) {
        int i;
        for (i = hash(key); keys[i] != null; i = (i + 1) % M)
            if (keys[i].equals(key))
                break;
        keys[i] = key;
        vals[i] = val;
    }

    public Val get(Key key) {
        int i;
        for (i = hash(key); keys[i] != null; i = (i + 1) % M)
            if (keys[i].equals(key))
                break;
        return vals[i];
    }

    public static void main(String[] args) {

        ArrayHashST_Linear_Probing<String,String> st = new ArrayHashST_Linear_Probing<String, String>();
        st.put("jocularly", "jocularly");
        st.put("seriously", "seriously");
        st.put("listen", "listen");
        st.put("suburban", "suburban");
        st.put("untravelled", "untravelled");
        st.put("considerating", "considerating");
        st.put("browsing","browsing");
        System.out.println(st.get("jocularly"));




    }

}

这个是分离链接的Demo:

package com.example.mahout;

public class ListHashST_Separate_Chaining<Key, Value> {
    private int M = 8191;
    private Node[] st = new Node[M];

    private static class Node {
        Object key;
        Object val;
        Node next;

        Node(Object key, Object val, Node next) {
            this.key = key;
            this.val = val;
            this.next = next;
        }
    }

    private int hash(Key key) {
        return (key.hashCode() & 0x7fffffff) % M;
    }

    public void put(Key key, Value val) {
        int i = hash(key);
        for (Node x = st[i]; x != null; x = x.next) {
            if (key.equals(x.key)) {
                x.val = val;
                return;
            }
        }
        st[i] = new Node(key, val, st[i]);
    }

    public Value get(Key key) {
        int i = hash(key);
        //System.out.println(i);
        for (Node x = st[i]; x != null; x = x.next){
            System.out.println(x.val);
            if (key.equals(x.key))
                return (Value) x.val;

        }

        return null;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ListHashST_Separate_Chaining<String, String> st =  new ListHashST_Separate_Chaining<String, String>();
        st.put("jocularly", "jocularly");
        st.put("seriously", "seriously");
        st.put("listen", "listen");
        st.put("suburban", "suburban");
        st.put("untravelled", "untravelled");
        st.put("considerating", "considerating");
        st.put("browsing","browsing");
        st.get("jocularly");
        //System.out.println(st.get("jocularly"));


    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Mahout-HashMap的进化版FastByIdMap,mahout

相关文章

  • Andrew Ng机器学习课程9-补充,andrew9-
  • Dynamics CRM 2015 Update 1 系列(2): Upsert API,dynamicsupsert
  • OpenStack-API开发,openstackapi
  • 一个spark receiver 或多个spark receiver 接收 多个flume agent,receiverflume
  • HDFS命令行接口详解,hdfs命令行详解
  • Hadoop新版和旧版中InputSplit大小的区别,hadoopinputsplit
  • Hadoop2伪分布模式安装,hadoop2分布模式
  • hadoop做HA后,hbase修改,hadoophahbase修改
  • Hive之简单查询不启用MapReduce,hive启用mapreduce
  • hadoop集群搭建之NFS服务,hadoop集群nfs

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • MemStore刷写线程—MemStoreFlusher源代码分析,hbasememstore
    • Spark性能优化:shuffle调优
    • 《1》CentOS7.0+OpenStack+kvm云平台部署—基础配置,centos7.0kvm
    • openstack-计算节点安装(Node),openstack-node
    • 2015 OpenCloud峰会总结,2015opencloud峰会
    • MapReduce小文件处理之CombineFileInputFormat实现,mapreducecombine
    • 最小 Docker 镜像 hello-world 剖析,dockerhello-world
    • ganglia安装教程,ganglia教程
    • 高阶MapReduce_3_reducer侧联结原理,mapreduce原理
    • libvirt网络过滤规则:禁止客户机(bridge方式)连接外网,libvirtbridge

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有