小编Zab*_*uza的帖子

类型不匹配将char []转换为对象

我确定我错过了一些简单但这个问题似乎绝对愚蠢.

private static void method501(char ac[])
{
    char ac1[] = ac.clone();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是在eclipse中char ac1[] = ac.clone();抛出一个类型不匹配错误,告诉我我无法将char数组转换为Object?

这是什么原因?它没有最新版本的eclipse 上给我同样的错误,所以想知道它是否只是这个旧版本给我的问题.

java eclipse debugging type-conversion

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

将地图中的列表展平为单个列表

我在map下面定义了一个像,它有字符串列表作为值

Map<Integer,List<String>> MapOf_words_arrays = new HashMap<Integer,List<String>>();
Run Code Online (Sandbox Code Playgroud)

我需要将上面 Map 的值放入一个字符串数组中(例如如下所示),。

["dog","cat"]
["book","pen","phone","waterbottle"]
.
.
.etc
Run Code Online (Sandbox Code Playgroud)

我正在使用以下语句

String wordlists = MapOf_words_arrays.values().toArray(new String[0]);
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误

线程“main”中的异常 java.lang.ArrayStoreException: java.util.ArrayList$SubList at java.util.AbstractCollection.toArray(AbstractCollection.java:196) at ScrapePages.main(ScrapePages.java:98)

有人可以帮我吗?

java list hashmap

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

为什么ArrayList RandomAccess而不是ArrayDeque?

好吧,我们知道这 RandomAccess是一个标记界面,文档说:

List实现使用的标记接口,表示它们支持快速(通常是恒定时间)随机访问.此接口的主要目的是允许通用算法更改其行为,以便在应用于随机或顺序访问列表时提供良好的性能.

因此,对我来说,ArrayList实现RandomAccess接口是完全合理的,因为内部元素存储在一个可以随机访问的数组中.但是,如果您将看到其内部实现ArrayDeque也将元素存储在一个数组中,但它没有实现RandomAccess,那么它是否有意或者它已经完成了一些我不知道的明确原因?

java arrays arraylist deque

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

Java instanceof不匹配Double

我有一个Value班级,其中有一个Object value.我想将值用作String,IntegerDouble.

asDouble方法控制instanceof值对象.如果不是DoubleInteger返回0.

一般来说它有效但有时虽然有效Double returns 0;.我不能理由.

当我调试时,我可以看到:

你可以查一下

这是我的Value类

public class Value{
    public Object value;

    public Value(Object value) {
        this.value = value;
    }

    public Double asDouble() {
        if (this.value instanceof Integer || this.value instanceof Double) {
            return Double.parseDouble(String.valueOf(this.value));
        } else {
            return 0.0; 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

谁能解释我哪里出错了?

java casting

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

维基百科浏览量分析

我一直受到维基百科浏览量分析的挑战。对我来说,这是第一个拥有如此大量数据的项目,我有点迷茫。当我从链接下载文件并解压缩时,我可以看到它具有类似表格的结构,其中的行如下所示:

1   |  2                             |3|4

en.m The_Beatles_in_the_United_States 2 0
Run Code Online (Sandbox Code Playgroud)

我很难找出每列中到底可以找到什么。我的猜测:

语言版本和附加信息(.m = 手机?)

文章名称

我对最后两列的最大担忧。最后一个只有“0”值,我不知道它代表什么。我会假设第三个显示观看次数,但我不确定。

如果有人能帮助我了解每列中到底可以找到什么或推荐一些关于这个主题的阅读,我将不胜感激。谢谢!

wikipedia analysis pageviews

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

跳过System.in.read()而不提示输入

我写了一段面试的代码。它询问您您的年龄以及性别。由于某种原因,.exe在打印出第二个问题后会终止。这是为什么?我该如何解决?

我检查了语法,但似乎找不到错误。

导入java.io.IOException;

公共类Abfrage {

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub

    char Geschlecht;
    System.out.println("Wie ist dein Geschlecht? M oder W?");
    Geschlecht = (char) System.in.read();

    int Alter;
    System.out.println("Wie ist dein Alter?");
    Alter = (int) System.in.read();
    if (Alter >= 18 && Alter <= 100)
    {
        System.out.println("Du bist volljaehrig, herzlichen Glueckwunsch!");
    }
}
Run Code Online (Sandbox Code Playgroud)

}

它打印出该字符串(“ Wie ist dein Alter?”),然后终止。我不能输入年龄(数字),这是println中提出的问题。

我希望它能使我进入年龄,如果我在18岁到100岁之间,它应该告诉我“恭喜您成年。” (如果还没有结束,还有更多)

编辑:我试图添加一个if else语句。当我运行.exe时:

    if (Alter >= 18 && Alter <= 100)
    {
        System.out.println("Du bist volljaehrig, herzlichen …
Run Code Online (Sandbox Code Playgroud)

java

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

int instanceof Integer

当 Java 执行自动装箱时,为什么这是编译时错误?我错过了什么吗?

int primitiveIntVariable = 0;

if (primitiveIntVariable instanceof Integer) {

}
Run Code Online (Sandbox Code Playgroud)

我得到

Inconvertible types; cannot cast 'int' to 'java.lang.Integer'
Run Code Online (Sandbox Code Playgroud)

java autoboxing instanceof

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

默认构造函数如何初始化字段

正如许多作者在书中所写的那样,类中实例变量的默认值是由class-default构造函数初始化的,但我在理解这一事实时遇到了问题。

class A {
    int x;

    A() {}
}
Run Code Online (Sandbox Code Playgroud)

正如我提供的A类的默认构造函数一样,现在x的值如何初始化为0?

java constructor initialization instance-variables

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

在 1,000,000,000 个元素中搜索键的算法,其中键位于前 n 个索引中,而无需事先指定 n

问题如下:

假设给定一个非常大的整数数组 A,其中包含 1,000,000,000 个元素,元素按降序排序。然而,只有前n个元素包含正整数数据,但n的值未知。数组的其余元素包含零。

给出 search(A,k) 方法的算法,用于在数组 A 中搜索键 k。它返回找到 k 的数组的索引,否则返回 -1。您的算法必须在最坏情况下运行 O(logn) 时间。

您可以使用 binarySearch(A, k, left, right) 在 A[left] 到 A[right] 中搜索 k(假设从左到右按降序排序)。

到目前为止我想到的方法:

  1. 使用 for 循环从索引 0 迭代直到包含第一个 0 的索引并与 k 进行比较。这需要 O(n) 时间,因此不符合时间限制。

  2. 对 A 本身进行二分查找。这需要 O(log 1,000,000,000) 时间并且超出了时间限制。

我有点被困在这里,无法想到任何其他方法。

在最坏情况下运行 O(logn) 的方法是什么?

algorithm time-complexity

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

Function::当需要 BiFunction&lt;T, U, R&gt; 时应用

我对以下行感到困惑:

Seq<String> s1 = seq.zip(split, Function::apply);
Run Code Online (Sandbox Code Playgroud)

在这个片段中:

static String underscoreToCamel(String str) {
        UnaryOperator<String> capitalize = s -> s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
        
        Seq<UnaryOperator<String>> seq = c -> {
            c.accept(String::toLowerCase);
            while (true) {
                c.accept(capitalize);
            }
        };
        List<String> split = Arrays.asList(str.split("_"));
        Seq<String> s1 = seq.zip(split, Function::apply);
        String a = s1.join("");
        return a;
    }

public interface Seq<T> {
        void consume(Consumer<T> consumer);

        static <T> Seq<T> unit(T t) {
            return consumer -> consumer.accept(t);
        }

        default <E> Seq<E> map(Function<T, E> function) {
            return consumer -> consume(t -> …
Run Code Online (Sandbox Code Playgroud)

java lambda method-reference

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