2010年8月10号---Java容器之LinkedHashMap和byte方面的一些应用

本文介绍了如何将字节数组(byte[])转换为字符串类型(String),并提供了使用UTF-8编码的具体示例。此外,还概述了LinkedHashMap的特点与应用场景,包括其在插入顺序保持和快速访问方面的优势。

convert from byte[] to String type.

example:

  


    byte[] arg0; //here ,for example ,this byte as a parameter ,so has not initialized

    String arg=null;

    try{
        arg = new String(arg0,"UTF-8");
    }catch(UnsupportEncodingException e){
         e.printStackTrace();  
    }

 

about type LinkedHashMap:

below content come from <<Thinking in Java---The Fouth Edition>>

summary:

       A Map is a way to associate not integral values,but objects with other objects.

       HashMaps are designed for rapid access,whereas a TreeMap keeps its keys in sorted order,and thus is not as fast as a HashMap. A LinkedHashMap keeps its elements in insertion order,but provides rapid access with hasing.

 

### 将 `LinkedHashMap` 换为 ByteString 为了将 `LinkedHashMap` 对象换成 `ByteString`,通常的做法是先将其序列化为字节数组,然后再构建 `ByteString`。以下是具体实现方式: #### 序列化 LinkedHashMapByteString 的过程 1. 使用 Java 提供的对象流机制(ObjectOutputStream ByteArrayOutputStream),可以方便地完成对象到字节流的化。 2. 接着利用 Protobuf 或其他库提供的工具类创建 `ByteString` 实例。 下面是完整的代码示例: ```java import com.google.protobuf.ByteString; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.LinkedHashMap; public class MapToByteStringExample { private static ByteString convertMapToByteString(LinkedHashMap<String, String> map) throws Exception { // 创建字节输出流 try (ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(bos)) { // 将map写入到输出流中 out.writeObject(map); byte[] bytes = bos.toByteArray(); // 构建并返回 ByteString return ByteString.copyFrom(bytes); } } } ``` 此段代码展示了如何通过标准输入/输出流的方式把一个 `LinkedHashMap` 类型的数据结构化为二进制形式,并进一步封装成为 `ByteString` 对象[^1]。 需要注意的是,在实际应用环境中应当考虑异常处理以及资源管理等问题;此外,由于涉及到反序列化的操作可能存在安全隐患,因此建议仅在受信任环境下执行此类换逻辑。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值