开源项目

相关文章

更多

最近更新

更多

Guava处理java byte类型工具类-Bytes类

2019-04-23 23:15|来源: 网路

Bytes是byte的基本类型实用工具类。

类声明

以下是com.google.common.primitives.Bytes类的声明:

@GwtCompatiblepublic final class Bytes
   extends Object

方法:

S.N. 方法及说明
1 static List<Byte> asList(byte... backingArray)
返回由指定数组支持的固定大小的列表,类似 Arrays.asList(Object[]).
2 static byte[] concat(byte[]... arrays)
则返回来自每个阵列提供组合成一个单一的阵列值。
3 static boolean contains(byte[] array, byte target)
返回true,如果目标是否存在在任何地方数组元素。
4 static byte[] ensureCapacity(byte[] array, int minLength, int padding)
返回一个包含相同的值数组的数组,但保证是一个规定的最小长度。
5 static int hashCode(byte value)
返回哈希码的值;等于调用的结果 ((Byte) value).hashCode().
6 static int indexOf(byte[] array, byte target)
返回目标数组的首次出现的索引值
7 static int indexOf(byte[] array, byte[] target)
返回指定目标的第一个匹配的起始位置数组内,或-1如果不存在。
8 static int lastIndexOf(byte[] array, byte target)
返回目标在数组中最后一个出场的索引的值。
9 static byte[] toArray(Collection<? extends Number> collection)
返回包含集合的每个值的数组,转换为字节值中的方式Number.byteValue().

继承的方法

这个类继承了以下类方法:

  • java.lang.Object

Bytes 示例

使用所选择的编辑器创建下面的java程序 C:/> Guava

GuavaTester.java

import java.util.List;
import com.google.common.primitives.Bytes;
public class GuavaTester {
   public static void main(String args[]){
      GuavaTester tester = new GuavaTester();
      tester.testBytes();
   }

   private void testBytes(){
      byte[] byteArray = {1,2,3,4,5,5,7,9,9};

      //convert array of primitives to array of objects
      List<Byte> objectArray = Bytes.asList(byteArray);
      System.out.println(objectArray.toString());

      //convert array of objects to array of primitives
      byteArray = Bytes.toArray(objectArray);
      System.out.print("[ ");
      for(int i = 0; i< byteArray.length ; i++){
         System.out.print(byteArray[i] + " ");
      }
      System.out.println("]");
      byte data = 5;
      //check if element is present in the list of primitives or not
      System.out.println("5 is in list? "+ Bytes.contains(byteArray, data));

      //Returns the index		
      System.out.println("Index of 5: " + Bytes.indexOf(byteArray,data));

      //Returns the last index maximum		
      System.out.println("Last index of 5: " + Bytes.lastIndexOf(byteArray,data));				
   }
 }

验证结果

使用javac编译器编译如下类

C:\Guava>javac GuavaTester.java

现在运行GuavaTester看到的结果

C:\Guava>java GuavaTester

看到结果。

[1, 2, 3, 4, 5, 5, 7, 9, 9]
[ 1 2 3 4 5 5 7 9 9 ]
5 is in list? true
Index of 5: 4
Last index of 5: 5


相关问答

更多

Java Guava过滤器有两种不同类型的集合(Java Guava filter two collection with different type)

使用java 8流API看起来相当不错: java.util.Collection<String> idToDelete = currentB.stream() //get the stream .filter(b -> !newA.contains(b.getA())) // filter those b, whose A is in newA .map(b -> b.getA().id) // map transform to get just ...

java的番石榴库(The Guava library: What are its most useful and/or hidden features? [closed])

严重的是,番石榴一切都很有用。 我一直在使用它一段时间,而且我仍然总是发现一些新的东西,它可以减少代码而不是用手做的。 有些事情其他人并没有真正提到我爱: Multimap只是很棒。 任何时候,您都可以使用Map<Foo, Collection<Bar>> ,使用多重图形,并为您自定义一个繁琐的检查映射到一个键的现有集合,如果不存在则创建和添加它。 Ordering对于构建Comparator是非常好的,它们的行为只是你想要的。 Maps.uniqueIndex和Multimaps.index : ...

我可以结合java8(流,lambda)和番石榴?(can i combine java8 (stream, lambda) and guava?)

java8 lambda实际上是接口java.util.function.Function的实现 不,这不对。 p -> p.getAge()没有预定义的类型 - 它的类型是在编译时推断的 ,具体取决于调用它的上下文。 任何具有int/Integer getAge(Person p)方法的函数接口都可以使用。 因此java.util.Function<Person, Integer>和com.google.common.base.Function<Person, Integer>都是兼容的。 th ...

不兼容的类型Guava Immutable Map to Java util map(Incompatible types Guava Immutable Map to Java util map)

Lombok检测到ImmutableMap<String, ImmutableMap<String, Double>>作为类型,它与Map<String, Map<String, Double>>不兼容ImmutableMap<String, ImmutableMap<String, Double>> 此处 。 要修复,只需明确声明类型: Map<String, Map<String, Double>> input = ImmutableMap.of(key1, ImmutableMap.of(k ...

使用Java Guava库,如何使用Builder创建ImmutableSortedSet?(Using the Java Guava library, how to create a ImmutableSortedSet using a Builder?)

通过一系列这样的链式调用,编译器无法推断调用naturalOrder()的类型参数,因为它的结果不会立即分配给可用于推理的内容。 你可以写 ImmutableSortedSet<String> ok = ImmutableSortedSet.<String>naturalOrder().build(); 要么 ImmutableSortedSet.Builder<String> builder = ImmutableSortedSet.naturalOrder(); // ... Immutab ...

使用Guava EventBus进行Java多线程处理(Java multithreading with Guava EventBus)

好吧,你不会在创建的线程中做任何事情,除了创建一个最终在堆中的对象(在线程之间共享),但由于对它的引用是在运行后没有保持,所以它也丢失了。 myObject @Subscribe方法在调用eventBus.post(event);的同一个线程中调用eventBus.post(event); 而不是在创建myObject的线程中。 我发现的奇怪的事情是我在MyObject类中的订阅方法的所有操作/日志记录都在主线程中再次执行 如果你的MyObject类有一个@Subscribe方法,那么为什么它需要 ...

使用Java / Guava可选类来创建和处理对象的矩阵(Using Java/Guava Optional class to create and handle matrices of objects)

我修复了代码中的一些错误,并添加了注释来解释: class MatrixOfObjects { // class declaration should not have a "()" private Optional<MyObjectClass>[][] map_use; public MatrixOfObjects(Integer nRows, Integer nCols) { map_use = (Optional<MyObjectClass>[][]) ne ...

不兼容的库版本selenium / guava(Incompatible library version selenium / guava)

因为你对com.google.guava:guava:23.3 org.seleniumhq.selenium:selenium-java:3.0.1依赖性com.google.guava:guava:23.3使用org.seleniumhq.selenium:selenium-java:3.0.1可能会让你在十字路口。 但是Selenium发行说明清楚地提到了以下番石榴依赖性: Selenium v2.49.0 :Bump guava到19版 Selenium v3.1.0 :需要更新最新的番石 ...

使用guava AbstractScheduledService(Using guava AbstractScheduledService)

AbstractScheduledServiced实现Service 。 Service接口描述了生命周期方法,包括startAsync 。 ServiceState枚举文字包含有关其含义的文档。 处于NEW状态的服务(刚刚创建): 处于此状态的服务处于非活动状态。 它做的工作量极少,占用资源极少。 要使服务执行某些有用的操作,您必须将其转换为RUNNING状态 此状态下的服务正在运行。 这就是为什么你必须在它做任何事之前启动服务的原因。 我还建议不要从构造函数中调用startAsync,而是从创 ...

在Java 8中用Guava将两个列表拖入一个不可变的多图中?(Zip two lists into an immutable multimap in Java 8 with Guava?)

我认为你的程序代码已经是最优的解决方案(无论是在内存和速度方面,假设随机访问列表)。 用小的更正,以便您的代码编译,它将是: ImmutableListMultimap.Builder<Key, Value> builder = ImmutableListMultimap.builder(); for (int i = 0; i < Math.min(keys.size(), values.size()); i++) { builder.put(keys.get(i), values.get( ...