小编Ral*_*lph的帖子

在Java中反转数组

我试图以两种方式反转数组:

1)通过创建一个非常简单的新数组:

public static int[] reverse(int[] array) {
    int[] reverseArray = new int[array.length];
    for(int i = 0; i < reverseArray.length; i++) {
        reverseArray[i] = array[array.length - i - 1];
    }
    return reverseArray;
}
Run Code Online (Sandbox Code Playgroud)

2)第二种方法我得到了答案,但实际上我并不理解它,它实际上利用交换,将数组的值赋予临时变量然后更改它并将其返回到原始变量:

public static int[] reverse2(int[] array)
{
    for (int i=0; i < array.length / 2; i++)
    {   
        int temp = array[i];
        array[i] = array[array.length - i - 1];
        array[array.length - i - 1] = temp;
    }
    return array;
}
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释第二个代码吗?我不明白除2?如果数组大小是偶数还是奇数,会发生什么?

java arrays reverse

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

由于return语句,我无法理解这段代码无法编译

import java.util.Scanner;
public class Test{
   public static int[] calculateFactors(int n){
      int[] array = new int[n];
      for(int i = 0; i<=n;i++){
         if(n%i==0){
            return array[i];
         }
      }
   }

   public static void main(String[] args){
      System.out.println("Please enter the number you want to find the factors for:");
      Scanner input = new Scanner(System.in);
      int n = input.nextInt();
      System.out.println(calculateFactors(n));
   }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我会收到错误.我正在尝试编写用户输入数字的代码,程序将返回此数字的所有因子.任何人都可以告诉我为什么当我无法使用相应的i因子返回数组时.

谢谢

java

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

Java中while(0)或while(1)的替代方法是什么?

我正在解决一个面试问题,即编写一个方法,在不使用+运算符的情况下添加两位数.

我非常了解算法,我可以在C中轻松完成.

这是算法,它完美地运作:

int add(int x, int y) {
int a, b;
do {
    a = x & y;           
    b = x ^ y; 
    x = a << 1; 
    y = b;
} while (a);
  return b;
}
Run Code Online (Sandbox Code Playgroud)

我尝试将此代码转换为Java,但是这个算法的功能是因为a将在一个点上变为000,在C中将在while循环中等于False.Java中的替代方案是什么?

谢谢.

c java bit-manipulation

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

为什么这个bash程序会进入无限循环?

#!/bin/bash

echo "Enter number of loops"
read count
echo $count
if [ $count -eq 0 ]
 then
    echo "The count cannot be zero. Enter a number again"
    read count
fi

while [ $count -gt 0 ]
do
    echo "Loop numner $count"
    count = `expr $count - 1`
done
Run Code Online (Sandbox Code Playgroud)

我试图在bash中模拟Java计数器.这存在吗?

unix bash shell

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

指针与堆中的内存之间的关系

我是一名新的C开发人员.我已经用Java编程了3年了.我注意到我必须用C做手动内存分配.

但是,当涉及到指针和内存分配时,我仍然不明确.我会说出我理解的内容,如果有人对我要说的话有任何评论,请指正.

所以我要说:

int *a;
Run Code Online (Sandbox Code Playgroud)

所以这样做会创建一个名为a的指针,指向一个整数值.

int *a = address;
Run Code Online (Sandbox Code Playgroud)

如果我打印地址,我会得到地址.

假设我想要价值,我做我们所谓的解除引用和

int *a = *value;
Run Code Online (Sandbox Code Playgroud)

如果我在这种情况下打印值,我会得到存储在内存中的实际数字.

我注意到在我使用的电子书中,有时候,我们在堆中分配内存.总是这样吗?每次我需要使用一个字符串的指针,例如使用char*,我必须使用alloc()和sizeof()分别根据预期类型的​​大小分配内存?

c memory heap allocation

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

继承自B,B继承自C.将初始化C的一个invoke构造函数?

当我准备接受有关OOP的采访时,我遇到了这个问题.

继承形式B. B继承自C.将初始化C的一个invoke构造函数?

我所知道的是构造不是继承的.我们必须使用super关键字来引用父的构造函数.我对吗?

java oop constructor

-2
推荐指数
1
解决办法
657
查看次数

标签 统计

java ×4

c ×2

allocation ×1

arrays ×1

bash ×1

bit-manipulation ×1

constructor ×1

heap ×1

memory ×1

oop ×1

reverse ×1

shell ×1

unix ×1