Java의 동적 배열은 사용자 요구 사항에 따라 배열의 크기를 늘리거나 줄이는 것을 의미합니다. 배열에서 요소를 제거하는 동안 배열 크기는 줄어들어야 하며, 배열에 요소가 추가되면 배열 크기가 늘어납니다. 배열은 동질적인 요소를 저장하는 데 사용됩니다. 즉, 동일한 유형의 요소를 한 번에 저장할 수 있습니다.
예: 정수, 부동 소수점 숫자, 이중 숫자, 문자열, 문자, 객체 등을 저장할 수 있지만 한 번에 특정 유형만 저장할 수 있습니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
배열은 세 가지 방법으로 선언할 수 있습니다.
1. 배열[]
예:
int Array[]={1,2,4};
2. [] 배열
예:
int[] Array ={1,2,4};
3. []아
예:
int []Array ={1,2,4};
배열 요소는 다음을 사용하여 반복됩니다.
배열을 동적으로 만드는 다른 대안이 있나요?
일반 동적 배열에 비해 컬렉션 Arraylist의 장점은 무엇인가요?
구문:
class DynamicArray { addingElements() { //custom logic } addingElementsAtIndex(int index, int element) { //custom logic } removingElements() { //custom logic } removingElementsAtIndex(int index, int element) { //custom logic } increasingSize() { //custom logic } decreasingSize() { //custom logic } printArrayElements() { //custom logic } . . . }
구문:
class ArrayListLogic { List<Generic Type> list=new ArrayList<Generic Type>(); list.add(); list.remove(index,element); . . . }
아래는 Java의 동적 배열의 예입니다.
배열에 요소를 추가하고 크기와 용량을 동적으로 늘립니다.
코드:
package com.dynamicarray; import java.util.Arrays; public class DynamicArray { // declaring an array int myArray[]; // stores the present size of the array int sizeOfMyArray; // stores total capacity of an array int arrayCapacity; // initializing array, size and capacity public DynamicArray() { myArray = new int[2]; sizeOfMyArray = 0; arrayCapacity = 2; } // method for adding elements public void addElementsToArray(int element) { // makes the capacity double if all the array elements filled if (sizeOfMyArray == arrayCapacity) { increaseCapacity(2); } myArray[sizeOfMyArray] = element; sizeOfMyArray++; } // method for adding elements to specific position public void addElementAtPosition(int position, int value) { // makes the capacity double if all the array elements filled if (sizeOfMyArray == arrayCapacity) { increaseCapacity(2); } // shifting array elements for (int p = sizeOfMyArray - 1; p >= position; p--) { myArray[p + 1] = myArray[p]; } // adding the element at specific position myArray[position] = value; sizeOfMyArray++; } // method for getting the element from specific position public int getElementAtposition(int position) { return myArray[position]; } // method for increasing capacity if all the elements in an array filled public void increaseCapacity(int minimumCapacity) { int temp[] = new int[arrayCapacity * minimumCapacity]; for (int p = 0; p < arrayCapacity; p++) { temp[p] = myArray[p]; } myArray = temp; arrayCapacity = arrayCapacity * minimumCapacity; } // method for array current size public int displaySize() { return sizeOfMyArray; } // method for array total capacity public int displayCapacity() { return arrayCapacity; } // method for display all elements public void displayArrayElements() { System.out.println("elements in array are :" + Arrays.toString(myArray)); } public static void main(String[] args) { DynamicArray array = new DynamicArray(); System.out.println("==================================================================="); System.out.println("Inital array size " + array.displaySize() + " and initial capacity " + array.displayCapacity()); System.out.println("==================================================================="); // adding elements at index 0 and 1 array.addElementsToArray(10);//line 1 array.addElementsToArray(20);//line 2 System.out.println("Size of myArray =>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.addElementsToArray(30); //line 3 System.out.println("Size of myArray =>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); //line 4 // adding element at index 1 array.addElementAtPosition(1, 50); System.out.println("Size of myArray =>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); // adding element at index 2 array.addElementAtPosition(2, 60); System.out.println("Size of myArray =>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); } }
출력:
설명:
코드:
package com.dynamicarray; import java.util.Arrays; public class DynamicArray { // declaring an array int myArray[]; // stores the present size of the array int sizeOfMyArray; // stores total capacity of an array int arrayCapacity; // initializing array, size and capacity public DynamicArray() { myArray = new int[2]; sizeOfMyArray = 0; arrayCapacity = 2; } // method for adding elements public void addElementsToArray(int element) { // makes the capacity double if all the array elements filled if (sizeOfMyArray == arrayCapacity) { increaseCapacity(2); } myArray[sizeOfMyArray] = element; sizeOfMyArray++; } // method for adding elements to specific position public void addElementAtPosition(int position, int value) { // makes the capacity double if all the array elements filled if (sizeOfMyArray == arrayCapacity) { increaseCapacity(2); } // shifting array elements for (int p = sizeOfMyArray - 1; p >= position; p--) { myArray[p + 1] = myArray[p]; } // adding the element at specific position myArray[position] = value; sizeOfMyArray++; } // method for getting the element from specific position public int getElementAtposition(int position) { return myArray[position]; } // method for removing elements public void removeAtPosition(int position) { if (position >= sizeOfMyArray || position < 0) { System.out.println("Opps!No elements found " + position + " position"); } else { for (int p = position; p < sizeOfMyArray - 1; p++) { myArray[p] = myArray[p + 1]; } myArray[sizeOfMyArray - 1] = 0; sizeOfMyArray--; } } // method for increasing capacity if all the elements in an array filled public void increaseCapacity(int minimumCapacity) { int temp[] = new int[arrayCapacity * minimumCapacity]; for (int p = 0; p < arrayCapacity; p++) { temp[p] = myArray[p]; } myArray = temp; arrayCapacity = arrayCapacity * minimumCapacity; } // method for make an array size to initial size public void makeInitialSize() { System.out.println("Making an array to initial size"); int temp[] = new int[sizeOfMyArray]; for (int q = 0; q < sizeOfMyArray; q++) { temp[q] = myArray[q]; } myArray = temp; arrayCapacity = myArray.length; } // method for array current size public int displaySize() { return sizeOfMyArray; } // method for array total capacity public int displayCapacity() { return arrayCapacity; } // method for display all elements public void displayArrayElements() { System.out.println("elements in array are :" + Arrays.toString(myArray)); } public static void main(String[] args) { DynamicArray array = new DynamicArray(); System.out.println("==================================================================="); System.out.println("Inital array size " + array.sizeOfMyArray + " and initial capacity " + array.arrayCapacity); System.out.println("==================================================================="); array.addElementsToArray(10); array.addElementsToArray(20); array.addElementsToArray(30); array.addElementsToArray(40); array.displayArrayElements(); array.removeAtPosition(2); System.out.println("Size after Remove Operation=>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); array.removeAtPosition(2); System.out.println("Size after Remove Operation=>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); array.removeAtPosition(1); System.out.println("Size after Remove Operation=>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); array.removeAtPosition(2); System.out.println("Size after Remove Operation =>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); array.removeAtPosition(1); System.out.println("Size after Remove Operation =>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); // Make the array to initial size array.makeInitialSize(); System.out.println(" After trimming Size of myArray =>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); array.addElementsToArray(-5); System.out.println("After trimming Size of myArray =>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); array.addElementsToArray(-6); System.out.println("After trimming Size of myArray =>" + array.displaySize() + " and Capacity :" + array.displayCapacity()); array.displayArrayElements(); } }
출력:
ArrayList를 사용한 동적 배열.
코드:
package com.dynamicarray; import java.util.ArrayList; import java.util.List; public class ArrayListDynamic { public static void main(String[] args) { List<Integer> list=new ArrayList<Integer>(); list.add(10); list.add(20); list.add(30); list.add(40); System.out.println("Adding the elements ArrayList =>"+list); System.out.println("Adding the elements ArrayList size =>"+list.size()); /*Array List capacity formula newCapacity = (oldCapacity * 3/2) + 1*/ list.add(4, 50); System.out.println("After adding the element at specific index =>"+list+" and size "+list.size()); list.remove(4); list.remove(3); System.out.println("After removing the elements =>"+list+" and size "+list.size()); } }
출력:
일반적인 동적 배열에서는 구현 개발자가 사용자 정의 로직을 작성해야 하지만 ArrayList 컬렉션에서는 사전 정의된 모든 메소드를 사용할 수 있으므로 사용자 정의 로직을 작성할 필요가 없습니다.
위 내용은 Java의 동적 배열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!