开源项目

知识点

相关文章

更多

最近更新

更多

Guava Booleans类-布尔型基本的实用工具类

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

Booleans是布尔型基本的实用工具类。

类声明

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

@GwtCompatible(emulated=true)
   public final class Booleans
      extends Object

方法

S.N. 方法及说明
1 static List<Boolean> asList(boolean... backingArray)
返回由指定数组支持的固定大小的列表,类似 Arrays.asList(Object[]).
2 static int compare(boolean a, boolean b)
比较两个指定的布尔值的标准方式(假的比真的少考虑以下)。
3 static boolean[] concat(boolean[]... arrays)
每个数组提供组合成一个单一的数组,则值返回。
4 static boolean contains(boolean[] array, boolean target)
返回true,如果target存在在任何地方数组元素。
5 static int countTrue(boolean... values)
返回为true值的数目。
6 static boolean[] ensureCapacity(boolean[] array, int minLength, int padding)
返回一个包含相同的值数组的数组,但保证是一个规定的最小长度。
7 static int hashCode(boolean value)
返回哈希码的值;等于调用的结果 ((Boolean) value).hashCode().
8 static int indexOf(boolean[] array, boolean target)
返回目标数组的首次出现的索引值。
9 static int indexOf(boolean[] array, boolean[] target)
返回指定目标的第一个匹配的起始位置数组内,或-1,如果不存在。
10 static String join(String separator, boolean... array)
返回包含由分离器分离所提供的布尔值的字符串。
11 static int lastIndexOf(boolean[] array, boolean target)
返回target 在数组中最后一个出现的索引值。
12 static Comparator<boolean[]> lexicographicalComparator()
返回一个比较器,它比较两个布尔数组字典顺序。
13 static boolean[] toArray(Collection<Boolean> collection)
复制Boolean实例集合到原始的布尔值的新数组。

方法继承

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

  • java.lang.Object

Booleans 示例

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

GuavaTester.java

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

   private void testBooleans(){
      boolean[] booleanArray = {true,true,false,true,true,false,false};

      //convert array of primitives to array of objects
      List<Boolean> objectArray = Booleans.asList(booleanArray);
      System.out.println(objectArray.toString());

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

      //return the first index of element
      System.out.println("true position in list "+ Booleans.indexOf(booleanArray, true));

      //Returns the count of true values	
      System.out.println("true occured: " + Booleans.countTrue());

      //Returns the comparisons		
      System.out.println("false Vs true: " + Booleans.compare(false, true));	
      System.out.println("false Vs false: " + Booleans.compare(false, false));	
      System.out.println("true Vs false: " + Booleans.compare(true, false));	
      System.out.println("true Vs true: " + Booleans.compare(true, true));	
   }
 }

验证结果

使用javac编译器编译如下类

C:\Guava>javac GuavaTester.java

现在运行GuavaTester看到的结果

C:\Guava>java GuavaTester

看到结果。

[true, true, false, true, true, false, false]
[ true true false true true false false ]
true is in list? true
true position in list 0
true occured: 0
false Vs true: -1
false Vs false: 0
true Vs false: 1
true Vs true: 0


相关问答

更多
  • 你能帮我理解这里涉及的权衡吗? 这是一个权衡: 性能 - 不分配临时数组可以节省成本。 但是,人们需要进行一些广泛的代码分析和基准测试来量化这种节省。 (我怀疑在大多数应用程序中它都是微不足道的。请阅读@Voo提供的这个链接 !) 可读性 - 拥有一堆额外的重载会使javadoc混乱。 可维护性 - 有一堆重载是以不需要临时对象的方式实现的,这需要大量的复制/粘贴编程,这使得将来的代码维护更加困难。 实用程序 - 这些重载的使用频率是多少? 我希望答案“很少”。 字节码占用空间 - 这些额外的重载将导致使用 ...
  • 您需要在每次调用时在同一个RateLimiter上调用acquire() ,例如,通过在performOperation()使其可用: public class RateLimiterTest { public static void main(String[] args) { RateLimiter limiter = RateLimiter.create(1.0); for (int i = 0; i < 10; i++) { perfor ...
  • 将一个新的“窥视”概念引入到一个已经很容易在两个方向上滚动的迭代器的价值在哪里? 如果你真的想要它,你可以实现两个简单的静态助手: public static T peekNext(ListIterator iterator) { T next = iterator.next(); iterator.previous(); return next; } public static T peekPrevious(ListIterator iterator) { T ...
  • Guava没有提供这个,尽管你可以通过找到给定点之前和之后的第一个范围来在RangeSet之上构建这样的东西。 但一般来说,除了类型的比较排序之外,Guava Range对距离,度量或任何其他内容一无所知 。 他们不知道10比15更接近11 。 Guava doesn't provide this, though you might be able to build such a thing on top of a RangeSet by finding the first range before and ...
  • 在RUNNING状态下调用stop()时,状态将更改为STOPPING并doStop()方法。 之后再次调用stop()不应该做任何事情。 doStop()实现应该调用notifyStopped() ,它将状态从STOPPING更改为TERMINATED 。 When you call stop() in the RUNNING state, the state is changed to STOPPING and the doStop() method gets called. Calling stop( ...
  • 好的,我明白了。 问题是RoleConverter转换为ceylon.language.String ,而api期望转换为java.lang.String 。 现在修复它: shared class RoleConverter() extends Converter() { shared actual Role doBackward(JString? name) { "Cannot convert null to role." asser ...
  • Guava wiki提供了以下使用ValueGraph示例: MutableValueGraph weightedGraph = ValueGraphBuilder.directed().build(); weightedGraph.addNode(1); weightedGraph.putEdgeValue(2, 3, 1.5); // also adds nodes 2 and 3 if not already present weightedGraph.putEdg ...
  • 因为你对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 :需要更新最新的番石榴版本21 ...
  • 从番石榴自己的解释来看,你必须使用Throwable ,是的。 这是他们的示例代码段: public void foo() throws IOException { Closer closer = Closer.create(); try { InputStream in = closer.register(openInputStream()); OutputStream out = closer.register(openOutputStream()); // do stu ...
  • AbstractScheduledServiced实现Service 。 Service接口描述了生命周期方法,包括startAsync 。 ServiceState枚举文字包含有关其含义的文档。 处于NEW状态的服务(刚刚创建): 处于此状态的服务处于非活动状态。 它做的工作量极少,占用资源极少。 要使服务执行某些有用的操作,您必须将其转换为RUNNING状态 此状态下的服务正在运行。 这就是为什么你必须在它做任何事之前启动服务的原因。 我还建议不要从构造函数中调用startAsync,而是从创建MySe ...