取出Set中的byte数组的值以及判断byte数组是否为空

1.使用两个for(:)语句,具体不懂:的使用的可以查阅我之前的关于Collection的说明

byte[] mbyte={1,2,3,3,4};
        byte[] mbyte2={2,5,7,3,4};
        byte[] mbyte3={1,5,2,4,2};
        Set<byte[]> mbytes=new HashSet();
        mbytes.add(mbyte);
        mbytes.add(mbyte2);
        mbytes.add(mbyte3);
        for(byte[] a:mbytes){//第一层循环取出byte数组
            for(byte b:a){//第二层循环从数组中取出byte的值
                System.out.print(b);
            }
            System.out.println();
        }

2.判断Set中的byte数组是否为空

//判断方法,传递一个byte数组进来,如果为空则返回true.否则返回false
public static boolean isNull(byte[] bs){
        if(bs.length==0||bs==null){//根据byte数组长度为0判断
            return true;
        }
        return false;
    }
//再上一个步骤说的双从循环中判断
for(byte[] a:mbytes){//第一层循环取出byte数组
            if(isNull(a))
            {
            System.out.println("byte数组为空");
            }
        }   

3.网上还有使用迭代器进行取值的(我在网上copy过来的一小段代码)

Set<Object> set = new HashSet<Object>();
Iterator<Object> it = set.iterator();
while(it.hasNext())//判断是否有下一个
it.next()//取出元素

4.还有一个在Set中的byte数组有限情况下取值的办法,这里假如有3个byte数组

byte[] mbyte={1,2,3,3,4};
        byte[] mbyte2={2,5,7,3,4};
        byte[] mbyte3={1,5,2,4,2};
Set<byte[]> mbytes=new HashSet();
        mbytes.add(mbyte);
        mbytes.add(mbyte2);
        mbytes.add(mbyte3);
//首先初始化3个byte数组。后面一定要加上{}
        byte[] bs1={};
        byte[] bs2={};
        byte[] bs3={};
//利用赋值过后的byte数组长度不为0来进行赋值
        for(byte[] bs:mbytes){
            if(bs1.length==0){
                bs1=bs;
            }else if(bs2.length==0)
            {
                bs2=bs;
            }else{
                bs3=bs;
            }

        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你从数据库读取了一张图片,其格式为BLOB,需要将其转换为byte[],并且去掉前几位字符,可以按照以下步骤进行操作: 1. 从数据库读取BLOB字段,得到一个java.sql.Blob对象: ```java PreparedStatement pstmt = conn.prepareStatement("SELECT image_data FROM images WHERE id = ?"); pstmt.setInt(1, 1); // 假设要读取id为1的图片数据 ResultSet rs = pstmt.executeQuery(); if (rs.next()) { Blob blob = rs.getBlob("image_data"); // 这里需要注意,如果BLOB字段可能为null,需要判断一下 if (blob != null) { // 接下来的操作 } } ``` 2. 将BLOB转换为byte[]: ```java byte[] bytes = blob.getBytes(1, (int) blob.length()); ``` 在上述代码,getBytes()方法将BLOB转换为byte[]。第一个参数表示要读取的起始位置,一般为1;第二个参数表示要读取的字节数,这里我们直接读取整个BLOB字段的内容。 3. 去掉前几位字符: 如果你知道前几位字符的长度,可以使用Arrays.copyOfRange()方法来去掉这些字符: ```java int offset = 5; // 假设要去掉前5个字符 byte[] data = Arrays.copyOfRange(bytes, offset, bytes.length); ``` 在上述代码,我们使用Arrays.copyOfRange()方法来复制从offset位置开始到数组末尾的所有元素,得到一个新的byte[]。 如果你不知道前几位字符的长度,可以先将byte[]转换为字符串,然后使用substring()方法去掉前几个字符,最后再将字符串转换回byte[]: ```java String str = new String(bytes); int offset = 5; // 假设要去掉前5个字符 byte[] data = str.substring(offset).getBytes(); ``` 在上述代码,我们先将byte[]转换为字符串,去掉前几个字符,然后再将字符串转换回byte[]。需要注意的是,这种方法可能会改变图片的格式,因为图片格式的前几个字节通常是固定的。所以,如果你不确定前几位字符的长度,最好不要使用这种方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值