相关疑难解决方法(0)

包装类是通过值传递还是通过引用传递?

我知道java是通过引用传递的,但仅适用于Java对象.但是为什么它不适用于Java Wrapper类?包装类如Integer,Float,Double是通过引用传递还是通过值传递?因为每当我在方法中传递此类的对象并且更改某些值时,但在该方法之外我没有获得更新的值.

java

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

在Java中传递值

可能重复:
Java是否通过引用传递?
Java是否通过引用传递?

嘿,

Java通过一切都是真的,value我们不能通过什么reference

谢谢.

java arguments reference

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

java字符串变量未设置

这是我正在处理的类文件的简化版本,我刚刚使用这些类来显示我的问题.

public class Test {
    private String string1 = null;
    private String string2 = null;

    private void setString(String s) {
        s = "hello";
    }

    private void set() {
        setString(string1);
        setString(string2);
    }

    public void print() {
        System.out.println(string1);
        System.out.println(string2);
    }

    public void initialise() {
        set();
        print();
    }  
}

public class StringTest {
    public static void main(String[] args) {
        Test test = new Test();
        test.initialise();
    }
}
Run Code Online (Sandbox Code Playgroud)

无论如何,基本上,在此之后,两个字符串变量仍为null.是什么导致这个问题?我怎么能绕过它呢?(仍在学习java的基础知识 - 如果相关的话).

非常感谢任何帮助/指导.

java string null

0
推荐指数
2
解决办法
2707
查看次数

添加到ArrayList中已有的Integer

我已经存在了ArrayList<Integer>,我想Integer在特定索引处添加1 .但是,它给我的错误是"赋值的左侧必须是变量".它是这样的:

arrayListOfIntegers.get(i) += 1;
Run Code Online (Sandbox Code Playgroud)

java integer arraylist

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

更改Java中方法中传递的参数的值?

在我了解细节之前,我想清楚地表明我确实理解Java是按值传递而不是传递参考,但是我有点困惑,因为我看到一些函数就是这样做的.我想知道他们是怎么做到的.

我想发生什么:

public void yo() {
    int a = 1;
    String b = "hello";
    Boolean c = false;

    doSomething(a,b,c);

    // a,b,c should have new values
}

public void doSomething(int x, String y, Boolean z) {
    // Do Something
}
Run Code Online (Sandbox Code Playgroud)

我见过的功能是这样的:

// Works in Android Development

int[] location = new int[2];
view.getLocationInWindow(location);

// `location` has a new value now
// Same happens when you run getLocationOnScreen(arg)
Run Code Online (Sandbox Code Playgroud)

这是如何运作的?

java android

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

是否可以在Java中传递Array by Value(而不是引用)?

是否可以在Java中的函数中传递Array by Value.当我们在默认情况下在函数中传递数组时,它通过引用传递,并且数组中的原始数据版本被修改.

因此想知道Java中是否存在pass by value选项?

java

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

即使在实例化之后,对象也是空的

我对此代码有疑问:

Object obj = null;
someMethod(obj);
System.out.println(obj.getId());
..
..
void someMethod(Object obj) {
    obj = new Object();
    obj.setId("Id1");
}
Run Code Online (Sandbox Code Playgroud)

上面的代码正在抛出NullPointerException.任何人都可以告诉我为什么即使在方法中实例化之后对象仍然为null?

java

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

通过方法更改变量

为什么我的输出等于5?我期待6,因为在"addthenumber(x);"之后 line,方法被调用,我想的是方法执行计算,5变为6.所以sysout应该打印6,但它是如何5?

public class CodeMomkeyPassingvalue 
{
    public static void main(String[] args) 
    {
        int x = 5;
        addthenumber(x);
        System.out.println(x);
    }

    private static void addthenumber(int number) 
    {
        number = number+1;
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

5
Run Code Online (Sandbox Code Playgroud)

java core

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

使用While循环添加到数组列表

我有一个包含书籍的数组列表.我想要做的(出于各种原因)是使用While循环继续将书籍添加到我的数组列表,直到我告诉程序停止.为了让它停止,我使用扫描仪询问人类用户是否应该添加另一本书.如果用户说是,则该方法将重复,否则该方法将停止.

不幸的是,我被困在两个方面(现在).首先,我不知道如何将决定插入到方法中,我试过:

while(decision.equals("Yes"){addBooks(anyTitle,anyAuthor);},
Run Code Online (Sandbox Code Playgroud)

然而,这似乎是错误的,因为它进入一个循环(虽然我想),但它会导致2个问题:A)即使我输入其他东西,该方法也不会结束(除非我使用另一个扫描仪并包含一个中断),和B)相同的输入字段一遍又一遍地插入到数组列表中,而没有给我输入新字符串的机会.

/**
 * Method to add a single book
 */
public void setOneBook(String anyTitle, String anyAuthor){
    bookList.add (new Book(anyTitle,anyAuthor));
}

/**
 * Method to add books to collection until the command to stop is given.
 */
public void addBooks(String anyTitle, String anyAuthor){
    bookList.add (new Book(anyTitle,anyAuthor));
    System.out.println("Would you like to add another book?");
    String decision = keybd.next();
}
Run Code Online (Sandbox Code Playgroud)

我此刻感到非常愚蠢,所以请对自己保持嗤之以鼻的评论.

虽然这样做了,但我会搞乱我的代码,所以如果有任何变化(无论好坏),我会更新我的帖子.

java arraylist while-loop

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

从ArrayList中随机选取元素

我需要从 中选取 N 个随机元素List<MyObject> objectsMyObject是一个复杂的类对象。我可以很容易地Collections.shuffle(objects)得到一个大小为 N 的子列表。

但后来我想到了一个想法。如果我创建 a List<Integer> indexes= [0, N-1],改洗此索引数组,获取一个子列表,并使用它从原始列表中获取元素,它会提高性能吗?

我的问题归结为:在 Java 中重排与轻量级对象列表之间是否存在有意义的性能差异?


ps:如果重要的话,我需要在新列表中返回随机选择,同时还将它们从原始列表中删除。

java shuffle arraylist

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

标签 统计

java ×10

arraylist ×3

android ×1

arguments ×1

core ×1

integer ×1

null ×1

reference ×1

shuffle ×1

string ×1

while-loop ×1