`
linest
  • 浏览: 155552 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

读代码-InputMapper

 
阅读更多
package org.apache.mahout.clustering.conversion;
目的:读取输入转换成vector输出

private static final Pattern SPACE = Pattern.compile(" ");
private Constructor<?> constructor;


用反射加载vector类
Configuration conf = context.getConfiguration();
String vectorImplClassName = conf.get("vector.implementation.class.name");
Class<? extends Vector> outputClass = conf.getClassByName(vectorImplClassName).asSubclass(Vector.class);
      constructor = outputClass.getConstructor(int.class);



正则按空格拆开,装入double链表,处理了连续空格情况
String[] numbers = InputMapper.SPACE.split(values.toString());    

Collection<Double> doubles = new ArrayList<Double>();
    for (String value : numbers) {
      if (value.length() > 0) {
        doubles.add(Double.valueOf(value));
      }
    }


建立vector,用writeable包装,key为vector的长度,value为vector写出
Vector result = (Vector) constructor.newInstance(doubles.size());
        int index = 0;
        for (Double d : doubles) {
          result.set(index++, d);
        }
        VectorWritable vectorWritable = new VectorWritable(result);
        context.write(new Text(String.valueOf(index)), vectorWritable);


分享到:
评论

相关推荐

    Laravel开发-laravel-domain-input-mapper

    这个工具的目的是提高代码的可维护性和可测试性,通过分离业务逻辑和数据处理。 **1. 域对象(Domain Objects)** 域对象是业务逻辑的核心,它们代表了应用中的特定概念或实体。在`laravel-domain-input-mapper`中...

    android4.0按键处理

    在分析输入事件的处理流程时,不仅需要关注framework层的代码,还需要了解Linux内核中如何处理输入事件。在Android 4.0中,多点触摸驱动已经成熟,但在系统层面上进行校准程序的编写则相对复杂,需要考虑到系统UI...

    Android 4.0 事件输入(Event Input)系统

    在 Android 4.0 中,TouchScreen 功能在移植到 Android 4.0 后不能正常工作了,这是因为 Android 4.0 中的 Event Input 系统的地位提高了,EventHub 成为系统中所有事件的中央处理站,并且 EventHub 的代码也发生了...

    Arduino游戏杆-项目开发

    为了将自制的Arduino游戏杆与Steam兼容,我们需要确保设备符合Steam的控制器标准,或者使用第三方软件(如InputMapper)进行适配。此外,我们还需要了解USB通信协议,因为大多数现代游戏控制器都是通过USB接口与电脑...

    android4.0 input touch分析

    * InputReader:InputReader 从 EventHub 中读取原始事件数据(RawEvent),并由各个 InputMapper 处理之后输入对应的 input listener。InputReader 拥有一个 InputMapper 集合,并拥有一个 EventHub 对象,但这个...

    [Hasen图示系列]android中键盘消息处理机制

    InputMapper::process( 这里 是KeyboardInputMapper) InputReader::createDeviceLock ed中根据类型创建的,负责处理轨迹 球事件的TrackballInputMapper 对 象以及负责处理触摸屏事件的 TouchInputMapper 对象等 ...

Global site tag (gtag.js) - Google Analytics