비디오: 자바 코드 연습 별찍기 #1 2024
많은 Android 앱에서 사용되는 ArrayList 클래스는 Java 컬렉션 빙산의 일각에 지나지 않습니다. Java 라이브러리에는 많은 장점이있는 컬렉션 클래스가 많이 포함되어 있습니다. 표에는 축약 된 목록이 있습니다.
클래스 이름 | Characteristic |
---|---|
ArrayList | 크기 조정 가능한 배열입니다. |
LinkedList | 목록의 다음
를 가리키는 필드가있는 값 목록입니다. |
Stack | 최상위 값에 액세스하기 위해 최적화 된
구조 (아래에서 위로 증가하는 구조). 상단에 값을 쉽게 추가하거나 상단에서 값을 제거 할 수 있습니다. |
Queue | 한쪽 끝 (후면)에 값을 추가하고
다른 끝 (앞쪽)에서 값을 제거하기 위해 최적화 된 구조 (한쪽 끝이 커짐). PriorityQueue |
특정 우선 순위 (높은 우선 순위)의 | 값을 앞쪽으로 이동시킬 수있는 큐와 같은 구조입니다.
HashSet |
중복 값이없는 컬렉션입니다. | HashMap |
키 / 값 쌍 모음. | -> |
배열은 색인 생성에 최적화 된 특별한 종류의 콜렉션입니다. 즉, 배열에 저장된 100 번째 값, 배열에 저장된 1, 000 번째 값 또는 배열에 저장된 1,000, 000 번째 값을 쉽고 효율적으로 찾을 수 있습니다.
package com. allmycode. 컬렉션; 공용 클래스 SimpleCollectionsDemo {public static void main (String [] args) {
String [] myArray = new String [4];
myArray [0] = "Hello"; myArray [1] = ","; myArray [2] = "독자"; myArray [3] = "!"; (int i = 0; i <4; i ++) { 시스템에 대한 아웃. print (myArray [i]); } 시스템. 아웃. println (); for (String string: myArray) {System. 아웃. print (string);}}} 이 그림은 목록에있는 코드 실행 결과를 보여줍니다. 일반 for 루프와 향상된 for 루프는 동일한 출력을 표시합니다.목록에서 코드 실행.
목록에서 일반 for 루프는 각 색인이 대괄호로 표시된 색인을 사용합니다.모든 Java 콜렉션과 마찬가지로 초기 값 인덱스는 1이 아니라 0입니다. 배열의 선언에서 숫자 4를 주목하십시오 - "배열에 4 개의 값을 저장할 수 있습니다. "
숫자 4999는"myArray [4]에 값을 할당 할 수 있음을 나타내는 것이 아닙니다. "사실, myArray [4] ="죄송합니다! "목록에있는 코드를 실행하면 프로그램을 실행할 때 불쾌한 오류 메시지 (ArrayIndexOutOfBoundsException)가 발생합니다.String [] myArray = new String [4] 문은 빈 배열을 만들고 myArray 변수가 빈 배열을 참조하도록합니다. 배열은 잠재적으로 4 개의 값을 저장할 수 있습니다. 그러나 초기에 변수는 값이없는 배열을 참조합니다. Java가 배열에 모든 값을 포함하는 첫 번째 할당 문 (myArray [0] = "Hello")을 실행할 때까지는 아닙니다.
배열에 저장된 100 번째 값이나 배열에 저장된 1, 000, 000 번째 값을 쉽고 효율적으로 찾을 수 있습니다. 하루의 작업에는 나쁘지 않습니다. 배열을 사용할 때의 단점은 무엇입니까? 배열의 가장 큰 단점은 각 배열이 보유 할 수있는 값의 수에 고정 된 제한이 있다는 것입니다. 목록에 배열을 만들면 Java는 4 개의 문자열 값을위한 공간을 예약합니다. 프로그램의 뒷부분에서 배열의 다섯 번째 요소를 저장하기로 결정했다면, 더 큰 배열로 만들기 위해 서툴고 비효율적 인 코드가 필요합니다. 다음 예제와 같이 배열에 필요한 크기를 과대 평가할 수도 있습니다. String [] myArray = new String [20000000];
과대 평가를하면 아마도 많은 메모리 공간을 낭비하게됩니다.
배열의 또 다른 불편한 점은 새로운 값을 삽입하는 데 어려움이 있다는 것입니다.
Emperor Constantine Comics
컬렉션에 매년 나무 상자가 있다고 상상해보십시오. 이 연작은 콘스탄티누스가 로마 제국의 머리가되었을 때 307 A. D.로 거슬러 올라갑니다.
당신은 약 6 년 (대부분 1150 년에서 1155 년까지)을 놓치고 있기 때문에 당신은 1 700 박스 밖에 가지고 있지 않습니다. 상자는 번호가 매겨지지 않았지만 길이가 200 미터 인 선에서 다른 상자 옆에 쌓여 있습니다. 이스탄불의 차고 세일에서는 1152 년 3 월부터
Emperor Constantine Comics 희귀 품을 발견합니다. 1152 년의 첫 만화에서 1151과 1153 년 사이에 더미 상자에 새 상자를 삽입해야한다는 것을 알고 있습니다. 2013 년 상자를 왼쪽으로 약 10 센티미터 이동 한 다음 2012 상자를 2013 상자를 클릭 한 다음 2012 상자 대신 2011 상자를 이동하십시오. 등등. 열렬한
황제
콘스탄틴 코믹스 컬렉터의 삶은 무심 해 지려하고 있습니다! 큰 배열의 중간에 값을 삽입하는 것은 성가신 일입니다.