Mapreduce实战:序列化与反序列化 int,int[],string[][]
//定义要序列化的类型
protected int[] splits;//int 数组
protected String[][] splitss;// 二维数组
protected int n1; //int public void cFPoints1(Vector<Text2> sample, int n) {
String[]strs = sample.toString().split (",");
int numSplits = strs.length/3;
//对数组进行长度设定
this.splits = new int[numSplits];
this.splitss = new String[numSplits][3];
//赋值
this.n1 = n;
for (int i =0; i < sample.size();i++){
String string = sample.get(i).toString();
String[]strs1 = string.toString().split (",");
this.splits[i] = Integer.parseInt(strs1[0]);
this.splitss[i][0] = strs1[0];
this.splitss[i][1] = strs1[1];
this.splitss[i][2] = strs1[2];
} }
<span style="font-family: Arial, Helvetica, sans-serif;">//注意序列化和反序列化的顺序要一致</span>
@Override
public void write(DataOutput out) throws IOException {
//序列化int类型</span>
out.writeInt(n1);
//序列化int数组</span>
out.writeInt(splits.length);
ByteBuffer bbuffer = ByteBuffer.allocate(splits.length * 4);
for (int split : splits)
bbuffer.putInt(split);
out.write(bbuffer.array(), bbuffer.arrayOffset(), bbuffer.position());
//序列化string数组</span>
out.writeInt(splitss.length);
for (String[] is2 : splitss) {
for (String i : is2) {
Text.writeString(out, i);
}
} } @Override
public void readFields(DataInput in) throws IOException {
//反序列化int类型</span>
n1 = in.readInt();
//反序列化int数组</span>
splits = new int[in.readInt()];
byte[] buffer = new byte[splits.length * 4];
in.readFully(buffer);
ByteBuffer bbuffer = ByteBuffer.wrap(buffer);
for (int i = 0; i < splits.length; i++)
splits[i] = bbuffer.getInt();
//反序列化string数组</span>
splitss = new String[in.readInt()][3];
for (int i = 0; i < splitss.length; i++)
for (int k = 0; k < splitss[0].length; k++) {
splitss[i][k] = Text.readString(in);
}
}
}
Mapreduce实战:序列化与反序列化 int,int[],string[][]的更多相关文章
- JSON和XML格式与对象的序列化及反序列化的辅助类
下面的代码主要是把对象序列化为JSON格式或XML格式等 using System; using System.Collections.Generic; using System.Globalizat ...
- List<string>序列化与反序列化一个小坑
Newtonsoft序列化与反序列化有两个重载方法,带<T>和不带<T>的 如果将一个List<String>序列化为jsonStr后,再反序列化,会变成JArra ...
- XML序列化与反序列化接口对接实战,看这篇就够了
关键字:c# .NET XML 序列化 反序列化 本文为接口对接实践经验分享,不对具体的XML概念定义进行阐述:涉及工具类及处理方法已在生产环境使用多年,可放心使用.当然如果你发现问题,或有不同想法, ...
- Golang之json序列化(struct,int,map,slice)
老规矩,直接上代码 package main import ( "encoding/json" "fmt" ) //把结构体都改小写 type User str ...
- int and string
int转string一.#include <sstream> int n = 0; std::stringstream ss; std::string str; ss<<n; ...
- JAVA中int、String的类型转换
int -> String int i=12345;String s="";第一种方法:s=i+"";第二种方法:s=String.valueOf(i); ...
- C++ int与string的转化
int本身也要用一串字符表示,前后没有双引号,告诉编译器把它当作一个数解释.缺省情况下,是当成10进制(dec)来解释,如果想用8进制,16进制,怎么办?加上前缀,告诉编译器按照不同进制去解释.8进制 ...
- [C#]List<int>转string[],string[]转为string
// List<int>转string[] public string[] ListInt2StringArray(List<int> input) { return Arra ...
- C++ 中 int 转string, 以及10进制转2进制
感谢:http://blog.csdn.net/xiaofei2010/article/details/7434737 以及:http://www.cnblogs.com/nzbbody/p/3504 ...
随机推荐
- [CODEVS1911] 孤岛营救问题(分层图最短路)
传送门 吐槽:神tm网络流... 用持有的钥匙分层,状态压缩,用 2 进制表示持有的钥匙集合. dis[i][j][k] 表示持有的钥匙集合为 k,到达点 (i, j) 的最短路径. 分层图的最短路听 ...
- 第一个 XMLHttpRequest 例子(API)
[API] https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest [替代方案] 如果不想自己敲代码,可以直接访问以下URL测试 ...
- springboot中如果使用了@Autowired注入了bean,则这个类也要为spring bean,new出来注入的bean为null
https://blog.csdn.net/Mr_Runner/article/details/83684088 问题:new出来的实例中含有@Autowired注入时,注入的Bean为null: 解 ...
- Gcd(bzoj 2818)
Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sam ...
- 模仿锤子手机的bigbang效果
<!DOCTYPE html> <html style="height: 100%"> <head> <meta http-equiv=& ...
- mybatis传入map参数,map中包含list(输入参数)
1.xml中配置: <!-- 根据条件查询满足条件的ID集合开始 --> <select id="getQuestionsIdsForExamPaper" res ...
- 转 SPOOLING技术——操作系统
传送门 SPOOLING技术——操作系统 SPOOLING技术(Simultaneous Peripheral Operating On Line) 同时联机外围操作技术,它是关于慢速字符设备如何与计 ...
- 数据结构自己实现——queue
SeqQueue.h #define QueueSize 100 typedef char DataType; class SeqQueue { public: DataType data[Queue ...
- 使用 Craft CMS 搭建blog模型
原文链接:http://www.supperxin.com/Coding/Details/create-blog-using-craft-cms Craft CMS站点的搭建可以参考这篇:使用Dock ...
- netty-类图对比