gpt4 book ai didi

Java 字节集

转载 作者:行者123 更新时间:2023-12-03 02:29:12 26 4
gpt4 key购买 nike

任何人都可以帮助我知道如何在 Java 中拥有一组字节吗?谢谢

最佳答案

Set<Byte> Java 集合框架中的选项

如果您想利用 Java Collections Framework,您可以拥有 java.util.Set<Byte> 。不幸的是,Java 泛型不能与基元一起使用。 java.lang.Byte byte 的框类型。也许您可以使用的实现是 TreeSet ;这是一个 SortedSet ,这样您就可以对(盒装) byte 进行排序按其自然顺序。

另请参阅

相关问题

<小时/>

BitSet性能选项

另一个选项是 java.util.BitSet 。这是一种非常节省时间和空间的数据结构,它使用位实现集合表示,即 int i如果位 i 则“在集合中”已设置。

BitSet不是 Java 集合框架的一部分。

这是一个示例用法:

    BitSet bytes = new BitSet();

bytes.set(3);
bytes.set(7);
bytes.set(11);
bytes.set(11);
bytes.set(1000);

System.out.println(bytes);
// {3, 7, 11, 1000}

System.out.println(bytes.cardinality()); // 4

System.out.println(bytes.get(10)); // false

请注意,您可以set byte 之外的位范围。

事实上,你不能直接set byte 中的所有位范围,自 byte是Java中的有符号数据类型。您可以使用位掩码来转换任何 byteint0..255范围如下:

    byte b = -1;
// bytes.set(b); // throws IndexOutOfBoundsException
bytes.set(b & 0xFF);
System.out.println(bytes);
// {3, 7, 11, 255, 1000}

然后您可以迭代所有 byte集合如下:

    for (int i = -1; (i = bytes.nextSetBit(i + 1)) != -1; ) {
byte b = (byte) i;
System.out.println(b);
}
// 3, 7, 11, -1, -24

请注意,由于 byte [-128,127]int [0,255]映射,负数在正数之后。 BitSet还有助于针对其他 BitSet 进行高效的集合操作,例如or , and , xor , equals , intersects

相关问题

关于Java 字节集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3429942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com