相关疑难解决方法(0)

如何在Java中将List <Integer>转换为int []?

这类似于这个问题: 如何在Java中将int []转换为Integer []?

我是Java的新手.我怎么能转换List<Integer>int[]Java中?我很困惑,因为List.toArray()实际上返回一个Object[],可以强制转换为虚空Integer[]int[].

现在我正在使用循环来执行此操作:

int[] toIntArray(List<Integer> list){
  int[] ret = new int[list.size()];
  for(int i = 0;i < ret.length;i++)
    ret[i] = list.get(i);
  return ret;
}
Run Code Online (Sandbox Code Playgroud)

我相信有更好的方法可以做到这一点.

java arrays collections

545
推荐指数
11
解决办法
41万
查看次数

如何JUnit测试两个List <E>包含相同顺序的相同元素?

上下文

我正在为该类编写一个简单的JUnit测试MyObject.

MyObject可以从静态工厂方法,该方法的可变参数来创建字符串.

MyObject.ofComponents("Uno", "Dos", "Tres");
Run Code Online (Sandbox Code Playgroud)

在存在期间的任何时候MyObject,客户端都可以通过该方法以List <E>的形式检查它所创建的参数.getComponents().

myObject.ofComponents(); // -> List<String>: { "Uno", "Dos", "Tres" }
Run Code Online (Sandbox Code Playgroud)

换句话说,MyObject两者都会记住并公开使其存在的参数列表.关于这份合同的更多细节:

  • 顺序getComponents将与为对象创建选择的顺序相同
  • 允许并按顺序保留重复的后续String组件
  • 行为null是未定义的(其他代码保证没有null到达工厂)
  • 在对象实例化之后,没有办法改变组件列表

我正在编写一个简单的测试,它MyObjectString列表中创建一个并检查它是否可以返回相同的列表.getComponents().我立即这样做,但这应该发生在一个真实的代码路径中的距离.

在这里我的尝试:


List<String> argumentComponents = Lists.newArrayList("One", "Two", "Three");
List<String> returnedComponents =
    MyObject.ofComponents(
        argumentComponents.toArray(new String[argumentComponents.size()]))
        .getComponents();
assertTrue(Iterables.elementsEqual(argumentComponents, returnedComponents));
Run Code Online (Sandbox Code Playgroud)

  • 谷歌番石榴 Iterables.elementsEqual()最好的办法,只要我有库在我的构建路径,那些两个列表比较?这是我一直在苦恼的事情; 我应该使用这个辅助方法,它超过了 …

java junit guava

72
推荐指数
6
解决办法
9万
查看次数

标签 统计

java ×2

arrays ×1

collections ×1

guava ×1

junit ×1