开源项目

相关文章

更多

最近更新

更多

Guava处理java int实用工具类-Ints类

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

整数Ints是原始的int类型的实用工具类。

类声明

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

@GwtCompatible
public final class Ints
   extends Object

字段

S.N. 字段及说明
1 static int BYTES
所需要的字节数来表示一个原始int值。
2 static int MAX_POWER_OF_TWO
两个最大的幂可以被表示为整数。

方法

S.N. 方法及说明
1 static List<Integer> asList(int... backingArray)
返回由指定数组支持的固定大小的列表,类似Arrays.asList(Object[]).
2 static int checkedCast(long value)
返回int值等于值,如果可能的话。
3 static int compare(int a, int b)
比较两个指定的int值。
4 static int[] concat(int[]... arrays)
每个阵列提供组合成一个单一的阵列,则返回值。
5 static boolean contains(int[] array, int target)
返回true,如果target是否存在在任何地方数组元素。
6 static int[] ensureCapacity(int[] array, int minLength, int padding)
返回一个包含相同的值数组的数组,但保证是一个规定的最小长度。
7 static int fromByteArray(byte[] bytes)
返回int值,其大端表示存储在第一个4字节的字节;相当于ByteBuffer.wrap(bytes).getInt().
8 static int fromBytes(byte b1, byte b2, byte b3, byte b4)
返回int值的字节表示的是给定的4个字节,在big-endian的顺序;相当于 Ints.fromByteArray(new byte[] {b1, b2, b3, b4}).
9 static int hashCode(int value)
返回值的哈希码; 等于调用 ((Integer) value).hashCode() 的结果
10 static int indexOf(int[] array, int target)
返回值目标数组的第一次亮相的索引。
11 static int indexOf(int[] array, int[] target)
返回指定目标的第一个匹配的起始位置数组内,或-1,如果不存在。
12 static String join(String separator, int... array)
返回包含由分离器分离所提供的整型值的字符串。
13 static int lastIndexOf(int[] array, int target)
返回target 在数组中最后一个出场的索引值。
14 static Comparator<int[]> lexicographicalComparator()
返回一个比较,比较两个int数组字典顺序。
15 static int max(int... array)
返回出现在数组中的最大值。
16 static int min(int... array)
返回最小值出现在数组。
17 static int saturatedCast(long value)
返回最接近的int值。
18 static Converter<String,Integer> stringConverter()
返回使用字符串和整数之间的一个转换器序列化对象 Integer.decode(java.lang.String) 和 Integer.toString().
19 static int[] toArray(Collection<? extends Number> collection)
返回包含集合的每个值的数组,转换为int值的方式Number.intValue().
20 static byte[] toByteArray(int value)
返回一个4元素的字节数组值大端表示;相当于 ByteBuffer.allocate(4).putInt(value).array().
21 static Integer tryParse(String string)
解析指定的字符串作为符号十进制整数。

继承的方法

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

  • java.lang.Object

Ints 示例

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

GuavaTester.java

import java.util.List;

import com.google.common.primitives.Ints;

public class GuavaTester {

   public static void main(String args[]){
      GuavaTester tester = new GuavaTester();
      tester.testInts();
   }

   private void testInts(){
      int[] intArray = {1,2,3,4,5,6,7,8,9};

      //convert array of primitives to array of objects
      List<Integer> objectArray = Ints.asList(intArray);
      System.out.println(objectArray.toString());

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

      //Returns the minimum		
      System.out.println("Min: " + Ints.min(intArray));

      //Returns the maximum		
      System.out.println("Max: " + Ints.max(intArray));

      //get the byte array from an integer
      byte[] byteArray = Ints.toByteArray(20000);
      for(int i = 0; i< byteArray.length ; i++){
         System.out.print(byteArray[i] + " ");
      }
   }
}

验证结果

使用javac编译器编译如下类

C:\Guava>javac GuavaTester.java

现在运行GuavaTester看到的结果

C:\Guava>java GuavaTester

看到结果。

[1, 2, 3, 4, 5, 6, 7, 8, 9]
[ 1 2 3 4 5 6 7 8 9 ]
5 is in list? true
Min: 1
Max: 9
0 0 78 32


相关问答

更多

Java ee框架-网页前台开发实用工具和具体步骤(网页前台设计方面的工具和步骤,不是整个开发框架)

如果有这么好的工具,那么公司还需要招那么多前台的员工,只需要按照你说的那样,直接都生成了,这是不太现实的,还是老实点自己写代码比较好,不过我可以推荐你使用easyUi,这个在页面布局,样式上面都还可以,而且很多功能都是封装好了,样式也给你封装好了,不需要你再去调了,像你说的那样生成代码的,这些是通过平台生成的,不过这些平台都是收费的,也不建议用!

Guava和SQL:将int转换为Ints(Guava and SQL: cast int to Ints)

Ints是一个静态实用程序类,它没有实例。 它是提供操作原始int的常用方法。 如果你需要将它包装在一个类中,那么自然的就是java.lang.Integer 。 Primitives.wrap()是一种元实用程序。 它告诉您哪个类实现了给定类的包装器。 如果提供原始int.class ,它将返回Integer.class 。 同样,它操纵类,它不包装原始值。 如果你想包装一个int ,你只需要: int fooToWrap = 42; Integer fooWrapped = Integer.v ...

Cocoa实用工具类(Cocoa Utility Class)

最简单的方法是不要将Utilities设为类,除非有一些原因需要创建它的实例。 由于本质上您的实用程序函数是一个没有共同主题的松散集合,因此没有理由尝试强制使用面向对象的范例。 (与Java不同,在基于C的语言中,并非所有内容都必须在类中。)只需将它们定义为传统的C样式函数,并将其称为它们。 如果你真的想在不是对象的东西上使用括号表示法并且不属于任何应该是类的东西,那么你可以像其他人建议的那样使用+表示法。 The easiest way is to not make Utilities a cl ...

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

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

现有的实用工具方法,确保所有集合元素都为非null [关闭](Existing utility method to ensure that all collection elements are non null [closed])

如果您只是想要抛出NPE ,最简单的方法可能是尝试创建一个Guava ImmutableCollection ,它要求所有元素都为非null(例如ImmutableList): ImmutableList.copyOf(collection); 至于检查空元素,番石榴有: boolean allNonNull = Iterables.all(collection, Predicates.notNull()); checkArgument(allNonNull, "collection had n ...

使用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 :需要更新最新的番石 ...

java / guava - 在iterable / iterator的某个索引处启动和停止(java/guava - start and stop at certain index of iterable/iterator)

您可以使用skip来实现此目的。 返回跳过其第一个numberToSkip元素的iterable视图。 例如,以下内容将为您提供一个Iterable,它会跳过前两个元素,然后将其限制为下一个元素: List<Integer> list = [0, ..., 10]; Iterable<Integer> iterable = Iterables.limit(Iterables.skip(list, 2), 5); //[2, 3, 4, 5, 6] 请注意,参数不被视为索引 ,而是被视为要跳过(或 ...

在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( ...