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 ...
随机推荐
- 【CCF】商路
[60分] #include<iostream> #include<cstdio> #include<cstring> #include<string> ...
- vim 翻页命令记录
vim命令: ctrl-f:往前翻一页(forward) ctrl-b:往后翻一页(backward) ctrl-d:往下翻半页(down) ctrl-u:往上翻半页(up)
- 标准C程序设计七---45
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- .net压缩图片质量(附demo)
private void CompressedImage(string fileName, long quality) { FileStream fs = new FileStream(fileNam ...
- LeetCode OJ--Minimum Path Sum **
https://oj.leetcode.com/problems/minimum-path-sum/ 对一个grid从左上角到右下角的路径,求出路径中和最小的. 受之前思路的影响,就寻思递归,并且记录 ...
- es6 String.raw()
模板字符串可以是原始的: ES6还为原生的String对象,提供了一个raw方法. 若使用String.raw 作为模板字符串的前缀,则模板字符串可以是原始(raw)的.反斜线也不再是特殊字符,\n ...
- 公司内部技术分享之Vue.js和前端工程化
今天主要的核心话题是Vue.js和前端工程化.我将结合我这两年多的工作学习经历来谈谈这个,主要侧重点是前端工程化,Vue.js侧重点相对前端工程化,比重不是特别大. Vue.js Vue.js和Rea ...
- Careercup | Chapter 3
3.1 Describe how you could use a single array to implement three stacks. Flexible Divisions的方案,当某个栈满 ...
- boost::function和boost::bind 介绍
一. boost::function介绍 原文:http://www.cnblogs.com/sld666666/archive/2010/12/16/1907591.html 本片文章主要介绍boo ...
- link2005 重复定义错误
造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量. 对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下.其实这是错误的,全局变量是针对整个工程的. 正 ...