Set length array java

How to resize an array in Java

Many candidates are rejected or down-leveled in technical interviews due to poor performance in behavioral or cultural fit interviews. Ace your interviews with this free course, where you will practice confidently tackling behavioral interview questions.

Overview

The size of an array is the number of elements it can hold. In Java, the array size is fixed when it is created.

The easiest way to resize an array is to create a new array with the desired size and copy the contents of the old array into it. We can delete the old array by setting it to null.

For this, we use the arraycopy() method of the System class or copyOf() method of the java.util.Arrays class.

The system.arraycopy() function

The arraycopy() function is used to copy elements from one array to another.

Syntax

void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

Parameters

  • src : This is the source array.
  • srcPos : This is the starting position in the source array.
  • dest : This is the destination array.
  • destPos : This is the starting position in the destination array.
  • length : This is the number of elements to be copied.
Читайте также:  Php text file template

Return value

This function returns no value. Its return type is void .

Resize an array to a larger size

Below is the code example of resizing an array to a larger size. For example, if we have an array of size 3 and we want to resize it to size 6 , we can do it as follows:

Code example 1

import java.util.Arrays;
class HelloWorld
public static void main( String args[] )
int[] oldArray = ;
int[] newArray = new int[6];
System.arraycopy(oldArray, 0, newArray, 0, 3);
oldArray = null;
System.out.println(Arrays.toString(newArray));
>
>

Explanation

  • Line 5: We declare an integer array of three elements, named oldArray , with values 1 , 2 , and 3 .
  • Line 6: We declare an integer array of six elements, named newArray . It is double the size of oldArray .
  • Line 7: We copy the elements of oldArray into newArray using the arraycopy() method.
  • Line 8: We set the oldArray to null , freeing up the memory it was using.
  • Line 10: We print out the contents of newArray .

Note: This will only work if the new array is larger than the old one. If we want to resize an array to a smaller size, we’ll have to create a new array and copy only the desired elements into it.

Resize an array to a smaller size

The code example below shows how to resize an array to a smaller size. For example, consider an array of size 10 and we want to resize it to size 5 by copying the last 5 elements:

Code example 2

import java.util.Arrays;
class HelloWorld
public static void main( String args[] )
int[] oldArray = ;
int[] newArray = new int[5];
System.arraycopy(oldArray, 5, newArray, 0, 5);
oldArray = null;
System.out.println(Arrays.toString(newArray));
>
>

Explanation

  • Line 5: We declare an array oldArray of size 10 .
  • Line 6: We create a new array named newArray , that is half the size of oldArray .
  • Line 7: We copy the elements of oldArray starting from index 5 into newArray using the arraycopy() method. We have copied only the last 5 elements from oldArray into newArray .
  • Line 8: We set oldArray to null , freeing up the memory it was using.
  • Line 10: We print out the contents of newArray .

The java.util.Arrays class has a method named copyOf() , which can also be used to increase or decrease the size of an array. We can also use this method to resize an Array.

The arrays.copyOf() function

The copyOf() method is a utility function that creates a new array with the same contents as an existing array. The new array is always of the same type as the original array. This method is useful for creating a copy of an array that will not be modified.

Источник

Change array size in java

No, we cannot change array size in java after defining.

Note: The only way to change the array size is to create a new array and then populate or copy the values of existing array into new array or we can use ArrayList instead of array.

Example: Custom Approach

public class Main { public static void main(String[] args) { int[] numberArray = { 12, 24, 63, 45 }; System.out.println("Array before ReSize: "); for (int i = 0; i  numberArray.length; i++) { System.out.println(numberArray[i]); } int[] temp = new int[6]; int length = numberArray.length; for (int j = 0; j  length; j++) { temp[j] = numberArray[j]; } numberArray = temp; System.out.println("Array after ReSize: "); for (int i = 0; i  numberArray.length; i++) { System.out.println(numberArray[i]); } } }
Array before ReSize: 12 24 63 45 Array after ReSize: 12 24 63 45 0 0

Array before ReSize: 12 24 63 45 Array after ReSize: 12 24 63 45 0 0

Example: Using System.arraycopy()

import java.util.Arrays; public class Main { public static void main(String[] args) { int[] numberArray = { 12, 24, 63, 45 }; System.out.println("Array before ReSize: "); for (int i = 0; i  numberArray.length; i++) { System.out.println(numberArray[i]); } numberArray = Arrays.copyOf(numberArray, 6); numberArray[4] = 11; numberArray[5] = 55; System.out.println("Array after ReSize: "); for (int i = 0; i  numberArray.length; i++) { System.out.println(numberArray[i]); } } }

import java.util.Arrays; public class Main < public static void main(String[] args) < int[] numberArray = < 12, 24, 63, 45 >; System.out.println(«Array before ReSize: «); for (int i = 0; i < numberArray.length; i++) < System.out.println(numberArray[i]); >numberArray = Arrays.copyOf(numberArray, 6); numberArray[4] = 11; numberArray[5] = 55; System.out.println(«Array after ReSize: «); for (int i = 0; i < numberArray.length; i++) < System.out.println(numberArray[i]); >> >

Array before ReSize: 12 24 63 45 Array after ReSize: 12 24 63 45 11 55

Array before ReSize: 12 24 63 45 Array after ReSize: 12 24 63 45 11 55

Interview Questions on Arrays

  • Can we change array size in java?
  • What is an anonymous array in java?
  • Difference between array and arraylist in java?
  • What are jagged arrays in java?
  • Can array size be negative in java?
  • Java program to find duplicate elements in an array.
  • Java program to find second largest element in an array of integers.
  • Java program to check the equality of two arrays.
  • Find all pairs of elements in an integer array whose sum is equal to a given number.
  • Java program to find continuous sub array whose sum is equal to a given number
  • Java program to find the intersection of two arrays
  • Java program to separate zeros from non-zeros in an integer array
  • Java program to find all the leaders in an integer array
  • Java program to find a missing number in an integer array
  • Java program to convert an array to ArrayList and an ArrayList to array
  • Java program to count occurrences of each element in an array
  • Java program to reverse an array without using an additional array
  • Java program to remove duplicate elements from an array
  • Java program to find union and intersection of multiple arrays
  • Java program to find the most frequent element in an array

Источник

Изменение размера массива с сохранением текущих элементов в Java

Изменение размера массива с сохранением текущих элементов в Java

  1. Изменить размер массива в Java
  2. Измените размер массива с помощью метода arraycopy() в Java
  3. Изменение размера массива с помощью метода copyOf() в Java
  4. Изменение размера массива с помощью цикла for в Java

В этом руководстве показано, как изменить размер массива, сохранив все его текущие элементы в Java. Мы включили несколько примеров программ, на которые вы можете ссылаться при выполнении программы в этом поле.

Массив определяется как контейнер, используемый для хранения подобных типов элементов в Java. Это контейнер фиксированного размера, что означает, что если массив имеет размер 10, он может хранить только 10 элементов — это одно из ограничений массива.

В этой статье мы научимся изменять размер массива с помощью некоторых встроенных методов, таких как функции arraycopy() и copyOf() , а также некоторых пользовательских кодов.

Изменить размер массива в Java

Самая верхняя альтернатива динамического массива — это класс структуры коллекции ArrayList , который может хранить любое количество элементов и динамически увеличивается. Первое, что мы можем сделать, это создать ArrayList и скопировать в него все элементы массива. Наконец-то у нас появился новый размер массива. См. Пример ниже:

import java.util.ArrayList; import java.util.List; public class SimpleTesting  public static void main(String[] args)   int arr[] = new int[]12,34,21,33,22,55>;  for(int a: arr)   System.out.print(a+" ");  >  ListInteger> list = new ArrayList<>();  for(int a: arr)   list.add(a);  >  System.out.println("\n"+list);  list.add(100);  System.out.println(list);  > > 
12 34 21 33 22 55 [12, 34, 21, 33, 22, 55] [12, 34, 21, 33, 22, 55, 100] 

Измените размер массива с помощью метода arraycopy() в Java

Java предоставляет метод arraycopy() , который принадлежит классу System и может использоваться для создания копии массива. В этом примере мы создаем новый массив большего размера, а затем копируем в него все исходные элементы массива с помощью метода arraycopy() . Следуйте приведенному ниже примеру программы:

public class SimpleTesting  public static void main(String[] args)   int arr[] = new int[]12,34,21,33,22,55>;  for(int a: arr)   System.out.print(a+" ");  >  int arr2[] = new int[10];  System.arraycopy(arr, 0, arr2, 0, arr.length);  System.out.println();  for(int a: arr2)   System.out.print(a+" ");  >  System.out.println();  arr2[6] = 100;  for(int a: arr2)   System.out.print(a+" ");  >  > > 
12 34 21 33 22 55 12 34 21 33 22 55 0 0 0 0 12 34 21 33 22 55 100 0 0 0 

Изменение размера массива с помощью метода copyOf() в Java

Класс Java Arrays предоставляет метод copyOf() , который можно использовать для создания массива нового размера путем копирования всех исходных элементов массива. Этот процесс принимает два аргумента: первый — это исходный массив, а второй — размер нового массива. См. Пример ниже:

import java.util.Arrays; public class SimpleTesting  public static void main(String[] args)   int arr[] = new int[]12,34,21,33,22,55>;  for(int a: arr)   System.out.print(a+" ");  >  int arr2[] = Arrays.copyOf(arr, 10);  System.out.println();  for(int a: arr2)   System.out.print(a+" ");  >  System.out.println();  arr2[6] = 100;  for(int a: arr2)   System.out.print(a+" ");  >  > > 
12 34 21 33 22 55 12 34 21 33 22 55 0 0 0 0 12 34 21 33 22 55 100 0 0 0 

Изменение размера массива с помощью цикла for в Java

Этот метод прост и является более старым подходом, в котором мы используем цикл for и присваиваем исходные элементы массива вновь созданному массиву на каждой итерации. Мы просто создаем новый массив большего размера и копируем в него все элементы с помощью цикла. См. Пример ниже:

public class SimpleTesting  public static void main(String[] args)   int arr[] = new int[]12,34,21,33,22,55>;  for(int a: arr)   System.out.print(a+" ");  >  int arr2[] = new int[10];  for (int i = 0; i  arr.length; i++)   arr2[i] = arr[i];  >  System.out.println();  for(int a: arr2)   System.out.print(a+" ");  >  > > 
12 34 21 33 22 55 12 34 21 33 22 55 0 0 0 0 

Сопутствующая статья — Java Array

Источник

Оцените статью