相关疑难解决方法(0)

如何将Java 8 IntStream转换为List?

我正在查看文档IntStream,我看到了一种toArray方法,但没有办法直接进入List<Integer>

当然有一种方法可以将a转换StreamList

java java-8

264
推荐指数
4
解决办法
7万
查看次数

将Java数组转换为Iterable

我有一个基元数组,例如int,int [] foo.它可能是一个小型的,或不是.

int foo[] = {1,2,3,4,5,6,7,8,9,0};
Run Code Online (Sandbox Code Playgroud)

从中创建一个最好的方法是Iterable<Integer>什么?

Iterable<Integer> fooBar = convert(foo);
Run Code Online (Sandbox Code Playgroud)

笔记:

请不要回答使用循环(除非你可以很好地解释编译器如何对它们做一些聪明的事情?)

另请注意

int a[] = {1,2,3};
List<Integer> l = Arrays.asList(a);
Run Code Online (Sandbox Code Playgroud)

甚至不会编译

Type mismatch: cannot convert from List<int[]> to List<Integer>
Run Code Online (Sandbox Code Playgroud)

还要检查 为什么数组不能分配给Iterable? 在回答之前.

此外,如果你使用一些库(例如,番石榴),请解释为什么这是最好的.(因为它来自谷歌不是一个完整的答案:P)

最后,由于似乎有关于此的功课,避免发布家庭作业代码.

java arrays iterable

135
推荐指数
6
解决办法
14万
查看次数

Arrays.asList()不能正常工作?

我有一个float [],我想得到一个具有相同元素的列表.我可以做一个又一个添加它们的丑陋的事情,但我想使用Arrays.asList方法.但是有一个问题.这有效:

List<Integer> list = Arrays.asList(1,2,3,4,5);
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.

int[] ints = new int[] {1,2,3,4,5};
List<Integer> list = Arrays.asList(ints);
Run Code Online (Sandbox Code Playgroud)

asList方法接受一个varargs参数,对我来说,扩展是一个数组的"简写".

问题:

  • 为什么第二段代码返回List<int[]>但不返回List<int>.

  • 有没有办法纠正它?

  • 为什么自动装箱不在这里工作; 即int[]Integer[]

java arrays list variadic-functions

54
推荐指数
5
解决办法
3万
查看次数

indexOf显然不应该返回-1

int[] sorted = {10,67,68,28};
int[] sortedOriginal = sorted.clone();
Arrays.sort(sorted);

System.out.println(Arrays.asList(sorted).indexOf(sortedOriginal[0]));
Run Code Online (Sandbox Code Playgroud)

在这个非常简单的代码中,我创建了一个int数组,克隆它,并对原始数据进行排序.之后我尝试找到给定某个值的索引并返回-1.

这没有意义.有谁知道为什么会这样,修复是什么?

java

2
推荐指数
1
解决办法
60
查看次数

Arrays.asList(外部数组).containsAll(Arrays.asList(内部数组))在不应该返回false时返回false

我目前正在尝试解决Euler项目的问题38,虽然我显然试图自己解决所有问题但我似乎遇到了一堵砖墙,我想我需要你的帮助.

所以这是我的代码:

import java.util.Arrays;

public class PandigitalMultiples{
    public static void main(String[]args){
        long c = 0;
        long pdLong = 0;
        for(int i = 1; i < 10000; i ++){
            String pdString = "";
            for(int n = 1; pdString.length() <= 9; n++){
                long p = n * i;
                String pString = String.valueOf(p);
                pdString = pdString + pString;
                pdLong = Long.parseLong(pdString);
                if(is1To9Pandigital(pdString) && pdLong > c && pdLong < 1000000000 && n > 1){
                    c = pdLong;
                }
            }
        }
        System.out.println(c); …
Run Code Online (Sandbox Code Playgroud)

java arrays

1
推荐指数
1
解决办法
181
查看次数

Stream.of(int [])返回Stream &lt;int []&gt;,而Stream.of(String [])返回Stream &lt;String&gt;为什么?

Stream.of(int[])返回Stream<int[]>,而Stream.of(String[]) 返回Stream<String>

为什么两种方法的行为有所不同?双方应该要么返回 Stream<int>Stream<String>Stream<int[]>Stream<String[]>

static int intArr[] = { 1, 2, 3, 4, 5 }; 
static String stringArr[] = { "3", "6", "8","14", "15" }; 

Stream<int[]> stream = Stream.of(intArr);
Stream<String> stream1 = Stream.of(stringArr);
Run Code Online (Sandbox Code Playgroud)

java

1
推荐指数
1
解决办法
56
查看次数

标签 统计

java ×6

arrays ×3

iterable ×1

java-8 ×1

list ×1

variadic-functions ×1