hadoop的数据类型的应用

package com.hadoop.io;

import java.util.Set;

import org.apache.hadoop.io.ArrayWritable;
import org.apache.hadoop.io.BooleanWritable;
import org.apache.hadoop.io.ByteWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.MapWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Writable;

/**
 * 
 * @author:戴桥冰 
 * 2015-10-5 下午7:14:37
 *content: 该类用来展示实际使用中的包装类
 */
public class WritableStudy {

	
	public static class IntArrayWritable extends ArrayWritable{

		public IntArrayWritable() {
			 super(IntWritable.class);
		}
	}
	
	public static void main(String[] args){
		System.out.println("***************Primitive Writables******************");
		BooleanWritable bool1=new BooleanWritable(true);
		ByteWritable byte1=new ByteWritable((byte) 3);
		System.out.printf("Boolean:%s Byte:%d\n",bool1,byte1.get());
		
		IntWritable int1=new IntWritable(5);
		IntWritable int2=new IntWritable(17);
		System.out.printf("int1:%d  int2:%d\n",int1.get(),int2.get());
		int1.set(int2.get());
		System.out.printf("int1:%d int2:%d\n",int1.get(),int2.get());
		
		Integer int3=new Integer(19940219);
		int1.set(int3);
		System.out.printf("int1:%d int2:%d\n",int1.get(),int2.get());
		
		System.out.println("\n*************Array Writable**************");
		ArrayWritable array=new ArrayWritable(IntWritable.class);
		array.set(new IntWritable[]{new IntWritable(1456456),new IntWritable(19941013),new IntWritable(19940219)});
		IntWritable[] values=(IntWritable[]) array.get();
		for(IntWritable i:values) 
			System.out.println("数字为:"+i.get());
		
		IntArrayWritable intArray=new IntArrayWritable();
		intArray.set(new IntWritable[]{new IntWritable(1),new IntWritable(19941013),new IntWritable(19940219)});
		IntWritable[] intValues=(IntWritable[]) intArray.get();
		 for(IntWritable w:intValues)
			 System.out.println("下一组数字为: "+w.get());
		intArray.set(new LongWritable[]{new LongWritable(19854646)});
		
		System.out.println("\n******************Map Writable*********************");
		MapWritable m=new MapWritable();
		IntWritable key1=new IntWritable(5);
		NullWritable values1=NullWritable.get();
		m.put(key1, values1);
		System.out.println(m.containsKey(key1));
		System.out.println(m.get(key1));
		m.put(new LongWritable(1000),key1);
		
		Set<Writable> keys=m.keySet();
		
		for(Writable w:keys){
			System.out.println(w.getClass());
		}
	}
}


结果如下所示:

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值