相关疑难解决方法(0)

使用Java查找基元数组中的最大/最小值

编写一个函数来确定数组中的最小/最大值是很简单的,例如:

/**
 * 
 * @param chars
 * @return the max value in the array of chars
 */
private static int maxValue(char[] chars) {
    int max = chars[0];
    for (int ktr = 0; ktr < chars.length; ktr++) {
        if (chars[ktr] > max) {
            max = chars[ktr];
        }
    }
    return max;
}
Run Code Online (Sandbox Code Playgroud)

但这不是已经在某处做过的吗?

java arrays algorithm frameworks

169
推荐指数
6
解决办法
56万
查看次数

将对象数组转换为其基本类型的数组

如果您有一个具有基本类型的Java对象数组(例如Byte,Integer,Char等).有没有一种简洁的方法我可以将它转换为原始类型的数组?特别是可以在不必创建新数组并遍历内容的情况下完成此操作.

例如,给定

Integer[] array
Run Code Online (Sandbox Code Playgroud)

什么是将其转换为最佳方式

int[] intArray
Run Code Online (Sandbox Code Playgroud)

不幸的是,当Hibernate与我们无法控制的某些第三方库之间进行交互时,我们必须经常这样做.这似乎是一个非常常见的操作,所以如果没有捷径我会感到惊讶.

谢谢你的帮助!

java arrays primitive-types

78
推荐指数
4
解决办法
5万
查看次数

将字节数组转换为List <Byte>

我能想到这些东西,

  1. Arrays.asList(byte[])转换byte[]List<byte[]>,
  2. 循环遍历字节数组并将每个元素添加到列表中

我只是想知道是否有任何库函数可以做到这一点?

java data-structures

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

在java中将基元类型数组转换为对象数组

为什么我不能在java中这样做?

Object[] o = (Object[])(new int[]{0,1,2,3.14,4});
Run Code Online (Sandbox Code Playgroud)

我有一个方法接收一个对象,然后将其表示为一个字符串,但取决于他的类型(原始,原始包装,数组等).当我创建一个Unit测试时,我将一个数组作为Object传递,这是好的,但当我执行该对象的转换为Object []时,我得到了ClassCastException.这只发生在原始类型数组中.有什么方法可以避免这种行为吗?如果没有,有人可以解释在Java虚拟机上这种行为的原因是什么.

非常感谢任何帮助.

java arrays primitive casting

31
推荐指数
4
解决办法
5万
查看次数

在Java中将List <Long>对象转换为long []数组的最佳方法是什么?

有没有任何实用工具方法将数值类型列表转换为基本类型数组?换句话说,我正在寻找比这更好的解决方案.

private long[] toArray(List<Long> values) {
    long[] result = new long[values.size()];
    int i = 0;
    for (Long l : values)
        result[i++] = l;
    return result;
}
Run Code Online (Sandbox Code Playgroud)

java collections

30
推荐指数
3
解决办法
4万
查看次数

从ArrayList转换为double []时出错?

我有一个ArrayListout,我需要把它转换为double[].我在网上找到的例子说了两件事:

第一次尝试:

double[] d = new double[out.size()];
out.toArray(d);
Run Code Online (Sandbox Code Playgroud)

但是,这会产生错误(eclipse):

The method toArray(T[]) in the type List<Double> is not applicable for the arguments (double[]).
Run Code Online (Sandbox Code Playgroud)

我找到的第二个解决方案是在StackOverflow上,并且是:

double[] dx = Arrays.copyOf(out.toArray(), out.toArray().length, double[].class);
Run Code Online (Sandbox Code Playgroud)

但是,这会产生错误:

The method copyOf(U[], int, Class<? extends T[]>) in the type Arrays is not applicable for the arguments (Object[], int, Class<double[]>)
Run Code Online (Sandbox Code Playgroud)

是什么导致了这些错误,如何outdouble[]不创建这些问题的情况下转换为?out确实只有双重价值.

谢谢!

java eclipse arrays list arraylist

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

将 double[] 包装到 Double[]

我对java真的很陌生。我想出了一些我真的无法理解的事情。我知道Double是一个包装类,您可以在所述类的对象中包装一个 double 值。所以看起来像这样的代码可以正常工作

double pi = 3.14;
Double tempVariable = new Double(pi);
Run Code Online (Sandbox Code Playgroud)

因此,它似乎完全合乎逻辑的,我认为,因为我可以换一个,这将是容易包装一个双[]双[] 。但事实并非如此。我尝试了我能想到的所有方法(语法更改 - 创建一个包含上述double[] 的Object 类型的对象,然后转换为 Double[],将Double对象当作数组处理),但这些都不起作用。

我正在使用 j2me。

大家有什么建议吗?

@MightyPork:这是我尝试做的第一件事。我认为,试图做到这一点的代码如下:

public Double[] modelWeights = new Double[9];
modelweights = {-1.31,1.39,-0.36,1.55,1.55,-2.03,2.25,2.27,-0.72};
Run Code Online (Sandbox Code Playgroud)

但这行不通。我不知道为什么。

@Abimaran Kugathasan:: 我昨天看到了ArrayUtils,这将是一个很好的解决方案,但我使用的是 j2me,而 j2me中没有实现ListHashSetArrayUtils所需的)等类。我错过了什么吗?

编辑:: Abimaran Kugathasan 链接的线程确实有其他与 fge 的答案非常接近的答案。谢谢大家的评论。

java

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

如何在java中找到数组的索引

我正在尝试使用此功能,但它给出的索引为 -1。那我能做什么

int[] veer = {14,25,14,56,15,36,56,77,18,29,49};

int a = Arrays.asList(veer).indexOf(14);

System.out.println("my array at position 14 is :" + (a));
Run Code Online (Sandbox Code Playgroud)

java arrays arraylist

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