相关疑难解决方法(0)

如何在Java中编写基本交换函数

我是java的新手.如何编写java相当于以下C代码.

void Swap(int *p, int *q)
{
   int temp;
   temp = *p;
   *p = *q;
   *q = temp;
} 
Run Code Online (Sandbox Code Playgroud)

java swap

53
推荐指数
5
解决办法
16万
查看次数

Java中的可变布尔字段

我在Java中需要一个可变的布尔字段(稍后我将通过get*方法返回此字段,并且应该可以修改此字段).

布尔值不起作用,因为布尔类中没有set*方法(我会说布尔值是不可变的,你只能改变引用,但你不能改变对象本身).

我想我可以使用大小为1的布尔数组.但是可能有更优雅的解决方案?

为什么Java没有这么简单的东西?

java

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

在Java中通过引用传递原始数据

是否可以将原始数据作为参数传递给java中的参数,而不将它们包装到相应的类对象中?

java

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

我可以通过Java中的引用传递原始类型吗?

我想调用一个可能采用不同版本的方法,即类型为输入参数的相同方法:

  • 布尔
  • 字节
  • INT

我想这样做的方法是"重载"方法(我认为这是正确的术语?):

public void getValue(byte theByte) {...}
public void getValue(short theShort) {...}
... etc ...
Run Code Online (Sandbox Code Playgroud)

...但这意味着我必须通过引用传递原始类型...类似于C++,其中方法具有外部效果,其中它可以修改其范围之外的变量.

有没有办法在不创建新类或使用原始类型的Object版本的情况下执行此操作?如果没有,有关替代战略的任何建议吗?

让我知道是否应该进一步解释清除任何混淆.


UPDATE

我实际上要做的是从一组位构造基本类型.因此,如果我正在处理方法的字节版本,我希望我的工作能够得到8位并返回字节(因为我无法通过引用传递).

我问这个问题的原因是因为我用bit做的工作是非常重复的,我不想在不同的方法中使用相同的代码.所以我想找到一种方法让我的ONE方法知道我正在谈论多少位......如果我正在处理一个字节,那么就是8位,如果我正在处理一个短的16位等等...

java overloading pass-by-reference primitive-types

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

java中通过引用传递一个整数

我需要在 java 中通过引用传递一个整数。有没有一种简单的方法可以做到这一点?在 C++ 中,通过在整数之前放置“&”将通过引用传递。这是我试图转换为 Java 的 C 代码:

void count(int distance, int i, int &counter, int array[], int n) {
    if (i == distance) 
        counter++;
    else {
        for (int j = 0; j < n; j++) {
            if (i <= distance - array[j]) 
                count(distance, i + array[j], counter, array, n);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有整数对象的情况下做到这一点?(我不想再上一堂课)

c++ java

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

在Java中通过引用传递类型

我有一个问题:如何在方法extendedEuclid中传递原始long类型作为引用?我发现它在java中是不可能的,还有其他解决方案吗?

参数long a必须通过引用传递,这是下面的代码.

public long extendedEuclid(long a, long b) //a have to be passed as a reference
{
    long x = 0;
    long y = 1;
    long lx = 1;
    long ly = 0;
    long temp_a;
    List quotient = new ArrayList<>();

    while(b != 0)
    {
       quotient.add(a/b);
       temp_a = a;
       a = b;
       b = temp_a % b;
    }

    long temp_x = x;
    long temp_y = y;

    for(int i=0; i<quotient.size()-1; i++)
    {
        x = lx - quotient.indexOf(i) * x;
        y = …
Run Code Online (Sandbox Code Playgroud)

java pass-by-reference

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