正确复制阵列 - java

我从笔记中发现了两个有关复制数组的示例。

下面给出的第一个示例指出,这不是复制数组的方法。但是,当我尝试运行代码时,它设法将所有值从array1复制到array2。

    int []array1={2,4,6,8,10};
    int []array2=array1;
    for(int x:array2){
        System.out.println(x);
    } 

给出的第二个示例是说复制数组的正确方法。

int[] firstArray = {5, 10, 15, 20, 25 };
int[] secondArray = new int[5];
for (int i = 0; i < firstArray.length; i++)
  secondArray[i] = firstArray[i];

我的问题是,这两个示例是否适合在编码中应用,还是首选示例2?如果您是我的讲师,那么我将应用示例1。与示例2的方法相比,我将获得更少的评分或完全相同?

参考方案

第一个示例不复制任何内容。它将原始数组的引用分配给新变量(array2),因此两个变量(array1array2)都引用同一数组对象。

第二个示例实际上创建了第二个数组,并将原始数组的内容复制到其中。

还有其他更简单的复制数组的方法。您可以使用Arrays.copyOfSystem.arraycopy,而不是通过for循环显式复制数组的元素。

int[] secondArray = Arrays.copyOf (firstArray, firstArray.length);

要么

int[] secondArray = new int[firstArray.length];
System.arraycopy(firstArray, 0, secondArray, 0, firstArray.length);

Java-固定大小的列表与指定初始容量的列表之间的差异 - java

我在理解这一点上遇到了问题。当我们做 List<Integer> list = Arrays.asList(array); 我们不能在该列表上使用添加,删除之类的方法。我知道Arrays.asList()返回固定大小的列表。我不明白的是,如果我们创建一个具有指定初始容量的列表,例如List<Integer> list2 = new A…

Java-将int更改为ascii - java

java有没有办法将int转换为ascii符号? 参考方案 您是否要将int转换为char?:int yourInt = 33; char ch = (char) yourInt; System.out.println(yourInt); System.out.println(ch); // Output: // 33 // ! 还是要将int转换为Stri…

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

Java-搜索字符串数组中的字符串 - java

在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …