开源项目

相关文章

更多

最近更新

更多

Guava Doubles类-double基本类型的实用工具类

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

Doubles是double基本类型的实用工具类。

类声明

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

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

字段

S.N. 字段及说明
1 static int BYTES
所需要的字节数来表示基本的double值。

方法

S.N. 方法及说明
1 static List<Double> asList(double... backingArray)
返回由指定数组支持的固定大小的列表,类似 Arrays.asList(Object[]).
2 static int compare(double a, double b)
比较两个指定的double值。
3 static double[] concat(double[]... arrays)
每个数组提供组合成一个单一的数组,则返回值。
4 static boolean contains(double[] array, double target)
返回true,如果target是否存在在任何地方数组元素。
5 static double[] ensureCapacity(double[] array, int minLength, int padding)
返回一个包含相同的值数组的数组,但保证是一个规定的最小长度。
6 static int hashCode(double value)
返回哈希码的值;等于调用 ((Double) value).hashCode() 的结果.
7 static int indexOf(double[] array, double target)
返回目标数组的首次出现的索引值。
8 static int indexOf(double[] array, double[] target)
返回指定目标的第一个匹配的起始位置数组内,或-1,如果不存在。
9 static boolean isFinite(double value)
返回true,如果值代表一个实数。
10 static String join(String separator, double... array)
返回包含所提供的double 值的字符串,所指定的转换为字符串 Double.toString(double), 及相隔分离。
11 static int lastIndexOf(double[] array, double target)
返回target 在数组中最后一个出现的索引值。
12 static Comparator<double[]> lexicographicalComparator()
返回一个比较,比较两个double阵列字典顺序。
13 static double max(double... array)
返回存在于数组的最大值,使用比较为相同的规则 Math.max(double, double).
14 static double min(double... array)
返回存在于数组的最小值,使用比较为相同的规则 Math.min(double, double).
15 static Converter<String,Double> stringConverter()
返回字符串转换之间和double采用序列化器对象 Double.valueOf(java.lang.String) and Double.toString().
16 static double[] toArray(Collection<? extends Number> collection)
返回一个包含集合中的每个值的数组,转换为double值的方式Number.doubleValue().
17 static Double tryParse(String string)
解析指定的字符串作为一个双精度浮点值。

方法继承

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

  • java.lang.Object

Doubles 示例

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

GuavaTester.java

import java.util.List;
import com.google.common.primitives.Doubles;
public class GuavaTester {

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

   private void testDoubles(){
      double[] doubleArray = {1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0};

      //convert array of primitives to array of objects
      List<Double> objectArray = Doubles.asList(doubleArray);
      System.out.println(objectArray.toString());

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

      //return the index of element
      System.out.println("5.0 position in list "+ Doubles.indexOf(doubleArray, 5.0f));

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

      //Returns the maximum		
      System.out.println("Max: " + Doubles.max(doubleArray));	
   }
 }

验证结果

使用javac编译器编译如下类

C:\Guava>javac GuavaTester.java

现在运行GuavaTester看到的结果

C:\Guava>java GuavaTester

看到结果。

[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
[ 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 ]
5.0 is in list? true
5.0 position in list 4
Min: 1.0
Max: 9.0


相关问答

更多

使用两种不同类型的Guava ListenableFutures的结果(Use the results of two Guava ListenableFutures of different types)

Runnable listener = new Runnable() { private boolean jobDone = false; @Override public synchronized void run() { if (jobDone || !(future1.isDone() && future2.isDone())) { return; } jobDone = true; ...

为什么Guava不为小的ImmutableLists使用专门的类?(Why does Guava not use specialized classes for small ImmutableLists?)

你能帮我理解这里涉及的权衡吗? 这是一个权衡: 性能 - 不分配临时数组可以节省成本。 但是,人们需要进行一些广泛的代码分析和基准测试来量化这种节省。 (我怀疑在大多数应用程序中它都是微不足道的。请阅读@Voo提供的这个链接 !) 可读性 - 拥有一堆额外的重载会使javadoc混乱。 可维护性 - 有一堆重载是以不需要临时对象的方式实现的,这需要大量的复制/粘贴编程,这使得将来的代码维护更加困难。 实用程序 - 这些重载的使用频率是多少? 我希望答案“很少”。 字节码占用空间 - 这些额外的重载 ...

通过ID与Guava Graph获取节点(Get a node by ID with Guava Graph)

如果你正在寻找一种索引你的图形节点的方式,可悲的是Guava没有内置这个功能。考虑使用CQEngine ,根据我的理解,你可以为任何集合(比如一组图形节点) 。 另外,如果您只是在寻找更高效的内存集合实现,则可以提供多种选项,包括但不限于Koloboke , fastutil和Eclipse Collections 。 If you're looking for a way to index your graph nodes, sadly Guava doesn't have this featu ...

是否有可能将Guava的ForwardingListIterator和PeekingIterator结合起来?(Is it possible to combine Guava's ForwardingListIterator with a PeekingIterator?)

将一个新的“窥视”概念引入到一个已经很容易在两个方向上滚动的迭代器的价值在哪里? 如果你真的想要它,你可以实现两个简单的静态助手: public static <T> T peekNext(ListIterator<T> iterator) { T next = iterator.next(); iterator.previous(); return next; } public static <T> T peekPrevious(ListIterator<T> iterator) ...

番石榴的IntervalTree(IntervalTree in Guava)

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 befor ...

番石榴,gwt和eclipse(guava, gwt and eclipse)

好的,看看你的进口线。 它看起来像这样吗? import com.google.gwt.thirdparty.guava.common.base.Predicate; 那是错的。 将其更改为: import com.google.common.base.Predicate; 如果您在Eclipse中使用完成辅助 - 控制空格键 - 请研究提供的完成列表。 不要只选择第一个。 向右看,它将以浅灰色文本标识完成源。 如果您正在查看thirdparty.guava,请转到下一个,直到您看到googl ...

Guava ValueGraph的简单示例(Simple example of Guava ValueGraph)

Guava wiki提供了以下使用ValueGraph示例: MutableValueGraph<Integer, Double> weightedGraph = ValueGraphBuilder.directed().build(); weightedGraph.addNode(1); weightedGraph.putEdgeValue(2, 3, 1.5); // also adds nodes 2 and 3 if not already present weightedGraph.p ...

不兼容的库版本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 Closer(How to use guava Closer properly)

从番石榴自己的解释来看,你必须使用Throwable ,是的。 这是他们的示例代码段: public void foo() throws IOException { Closer closer = Closer.create(); try { InputStream in = closer.register(openInputStream()); OutputStream out = closer.register(openOutputStream()); // d ...

使用guava AbstractScheduledService(Using guava AbstractScheduledService)

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