相关疑难解决方法(0)

在Java中将数组转换为列表

如何将数组转换为Java中的列表?

我使用Arrays.asList()但行为(和签名)以某种方式从Java SE 1.4.2(现在存档中的文档)更改为8,我在网上找到的大多数片段使用1.4.2行为.

例如:

int[] spam = new int[] { 1, 2, 3 };
Arrays.asList(spam)
Run Code Online (Sandbox Code Playgroud)
  • 在1.4.2上返回一个包含元素1,2,3的列表
  • 在1.5.0+上返回包含阵列垃圾邮件的列表

在许多情况下,它应该很容易被发现,但有时它可能会被忽视:

Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1);
Run Code Online (Sandbox Code Playgroud)

java arrays list data-conversion

957
推荐指数
13
解决办法
125万
查看次数

HashMap和int作为键

我正在尝试构建一个HashMap,它将整数作为键,对象作为值.

我的语法是:

HashMap<int, myObject> myMap = new HashMap<int, myObject>();
Run Code Online (Sandbox Code Playgroud)

但是,返回的错误是 - 令牌"int"上的语法错误,此令牌后预期的维度 - 我不明白为什么我应该添加维度(即:将int转换为数组)因为我只需要存储一个数字作为关键.

我能做什么?

提前致谢!:)

java hashmap

100
推荐指数
6
解决办法
17万
查看次数

将Boolean转换为boolean并在Java中处理null的实用方法

有没有在Java中的实用工具方法它转换Booleanboolean和自动处理空引用Boolean假?

java boolean utility-method

12
推荐指数
2
解决办法
6126
查看次数

为什么自动装箱在阵列中不起作用?

我不明白为什么这段代码没有编译:

 Object[] arr = new int[3];
Run Code Online (Sandbox Code Playgroud)

我不需要这段代码.我只想了解自动装箱在这种情况下不起作用的原因

java types type-conversion

5
推荐指数
2
解决办法
513
查看次数

在这里使用新的Integer有什么用呢?

import java.util.Stack;

public class StackIntro {
    public static void main(String[] args){
        Stack clapper = new Stack();

        for( int i=0; i<11; i++){
            clapper.push(i);
        }

        while(!clapper.isEmpty()){
            System.out.print ( clapper.pop() );     //FILO
            System.out.print ( ',' );
            if(clapper.size()==1){
                System.out.print(clapper.pop());    //FILO
                System.out.println("...");
            }
        }
        System.out.println("Lift-off.");
        clapper.removeAllElements();
    }
}
Run Code Online (Sandbox Code Playgroud)

所以基本上我只是想看看数字是如何进出堆栈的.FILO评论显示了这一点.我被告知我应该改变第8行:

clapper.push(i); //previous

clapper.push(new Integer(i)); //new
Run Code Online (Sandbox Code Playgroud)

我不明白这会实现什么,或者两者之间的区别.

java

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

Scala 转换为泛型类型

我对泛型类型感到困惑。我希望它2.asInstanceOf[A]被转换为 type A,同时,它被转换为Int. 除此之外,输入是java.lang.Long而输出是一个列表Int(根据定义,输入和输出应该是相同的类型)。这是为什么?

def whatever[A](x: A): List[A] = {
  val two = 2.asInstanceOf[A]
  val l = List(1.asInstanceOf[A],2.asInstanceOf[A])

  println(f"Input type inside the function for 15L: ${x.getClass}")
  println(f"The class of two: ${two.getClass}, the value of two: $two")
  println(f"The class of the first element of l: ${l.head.getClass}, first element value: ${l.head}")
  l
}

println(f"Returned from whatever function: ${whatever(15L)}")

Run Code Online (Sandbox Code Playgroud)

输出:

Input type inside the function for 15L: class java.lang.Long
The class of two: class …
Run Code Online (Sandbox Code Playgroud)

boxing casting scala type-erasure

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

在编译时捕获拆箱和自动装箱问题的策略是什么?

我编辑了这个问题,从区分它这一个,并消除可怕的"为什么呢?"

如果我有一个返回java对象的java方法,Integerjava编译器允许我将它分配给一个原语int.这似乎要求运行时的麻烦.即.如果整数为空怎么办?

public class SomeClass {
    private Integer someIntegerObject;

    public Integer getSomeIntegerObject() {
        return this.someIntegerObject;
    }
}

SomeClass someClass = new SomeClass();
//much later...
int someIntegerPrimative = someClass.someIntegerObject();
Run Code Online (Sandbox Code Playgroud)

如果将someIntegerObject其设置为null,这将在运行时爆炸,但它似乎可以在编译时轻松捕获.

此功能称为"拆箱",而其相反的是"自动装箱".它旨在节省开发人员的时间和可读性,从而手动拆箱.

问题是:在编译时捕获潜在问题的最佳策略是什么?

java

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

为什么 array.sort 不能通过这样的数组工作?

我大约 2 周前才开始编程,所以请不要太严格:)

我试图解决一个编程练习来打印数组的 3 个最大元素,但是 .sort 方法

报告错误,我不知道为什么。似乎我以错误的方式声明了我的数组,但我无法发现错误。

public static void main(String[] args) {
    int [] elements = {1, 4, 17, 7, 25, 3, 100};
    int k = 3;
    System.out.println("Original Array: ");
    System.out.println(Arrays.toString(elements));
    System.out.println(k +" largest elements of the said array are:");
    Arrays.sort(elements, Collections.reverseOrder());         
   for (int i = 0; i < k; i++) 
      System.out.print(elements[i] + " ");
}
Run Code Online (Sandbox Code Playgroud)

}

java arrays

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

为什么Object []存储原语?

Object[]可以存储来自任何类的任何对象,因为Java中的每个类都会扩展java.lang.Object.

我不认为原语会延伸Object,为什么我们可以将它们存储起来如下?

Object[] obj_arr = {1, 2, 1.2, 'a', false, new MyClass(), null};
Run Code Online (Sandbox Code Playgroud)

问题是为什么原语可以存储在Object数组中并且在上面的代码中是否发生了自动装箱

java primitive autoboxing

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