Java 创建类的数组,将数组中的各个值作为参数传入
我觉得我忽略了一些基本的东西。我正在寻找一种优雅的方式:Java 创建类的数组,将数组中的各个值作为参数传入,java,java-8,java-stream,Java,Java 8,Java Stream,我觉得我忽略了一些基本的东西。我正在寻找一种优雅的方式: List<Card> cards = new ArrayList<>(ranks.length); for (int i = 0; i < ranks.length; i++) { cards.add(new Card(ranks[i],suits[i],values[i])); } 列表卡=新的数组列表(秩.长度); for(int i=0;inew Card(ranks[i],suits[i],
List<Card> cards = new ArrayList<>(ranks.length);
for (int i = 0; i < ranks.length; i++) {
cards.add(new Card(ranks[i],suits[i],values[i]));
}
列表卡=新的数组列表(秩.长度);
for(int i=0;i
Intellj提出了:
cards = IntStream.range(0, ranks.length).mapToObj(i -> new Card(ranks[i], suits[i], values[i])).collect(Collectors.toCollection(() -> new ArrayList<>(ranks.length)));
cards=IntStream.range(0,ranks.length).mapToObj(i->new Card(ranks[i],suits[i],values[i])).collect(collector.toCollection(()->new arraraylist(ranks.length));
但这感觉太过分了。有更好的方法吗?for-loop方法没有错,但是如果您想使用
流
s,可以简化收集
部分(您可以不使用自定义容量和列表
实现):
您是如何初始化
等级
、套装
和值
?您是硬编码的还是来自某个地方的值?@Sweeper它们是传递给构造函数的字符串数组,在传递它们的另一侧硬编码(但仅作为示例),而不是硬编码三个数组,然后从它们创建卡片,为什么不硬编码卡片数组:{new card(…),new card(…),new card(…),new card(…)}
如果您不喜欢for循环?
cards = IntStream.range(0, ranks.length).mapToObj(i -> new Card(ranks[i], suits[i], values[i])).collect(Collectors.toList());