Java 배열의 정의 및 사용 <br /> 동일한 유형의 데이터 세트를 저장하려면 배열을 사용할 수 있습니다.
배열 정의 및 메모리 할당
Java에는 배열을 정의하기위한 두 개의 구문이 있습니다.
arrayName []; type [] arrayName;
유형은 기본 유형 및 조합 유형을 포함한 Java의 모든 데이터 유형이며 배열 이름은 법적 식별자임을 나타냅니다. 예를 들어:
int demoarray []; int [] demoarray;
이 두 형태 사이에는 차이가 없으며, 사용 효과는 동일합니다.
C 및 C ++와 달리 Java는 배열을 정의 할 때 배열 요소에 대한 메모리를 할당하지 않으므로 배열 요소의 수, 즉 배열의 길이를 지정할 필요가 없습니다. 또한, 위에서 정의 된 배열의 경우, 우리는 그 요소에 액세스 할 수 없습니다.
ArrayName = 새로운 유형 [ArraySize];
Arraysize는 배열의 길이이며 유형은 배열의 유형입니다. 좋다:
DemoArray = 새로운 int [3];
정수 배열에 3 개의 int 정수를 차지하는 메모리 공간을 할당하십시오.
일반적으로 구문을 다음과 같이 정의하는 동안 공간을 할당 할 수 있습니다.
arrayName 유형 [] = 새 유형 [ArraySize];
예를 들어:
int demoarray [] = new int [3];
배열의 초기화
배열을 선언하는 동안 초기화 (정적 초기화)를 초기화하거나 선언 후 초기화 (동적 초기화)를 초기화 할 수 있습니다. 예를 들어:
// 정적 초기화 // 정적 초기화를하는 동안 정적 초기화는 공간을 배열 요소에 할당하고 int intarray [] = {1,2,3,4}; String StringArray [] = { "wechatyuan", "http : // www .weixueyuan.net ","모든 프로그래밍 언어는 종이 호랑이 "}}; // 동적 초기화 float array [] = new float [3]; floatArray [0] = 1.0f; floatArray [1] = 132.63f; floatArray [2] = 100f;배열 참조
배열은 첨자로 참조 할 수 있습니다.
ArrayName [index];
C 및 C ++와 달리 Java는 보안을 보장하기 위해 배열 요소에 대한 외형 점검을 수행해야합니다.
각 배열에는 길이 속성이 있으며, 예를 들어 intarray.length는 배열 intarray의 길이를 지정합니다.
[예] 5 개의 정수의 입력이 필요한 코드를 작성하고 합계를 출력하십시오.
java.util. 배열 요소를 할당 System.out.print ( " + len +"정수를 입력하십시오 ) {intarray [i] = sc.nextint (); ( "모든 배열 요소의 합은" + 총); 실행 결과 :
공간으로 분리 된 5 개의 정수를 입력하십시오 : 10 20 15 25 50
모든 배열 요소의 합은 120입니다
어레이 트래버스
실제 개발에서는 배열에서 모든 요소를 얻기 위해 배열을 가로 질러야합니다. 가장 쉬운 방법은 예를 들어 For Loop입니다.
int arraydemo [] = {1, 2, 4, 7, 9, 192, 100}; for (int i = 0, len = arraydemo.length; i <len; i ++) {system.out.println (arraydemo [i ] + ",");}
출력 결과 :
1, 2, 4, 7, 9, 192, 100,
그러나 Java는 루프 용 "향상된 버전"을 제공하며, 구문은 구문과 함께 배열을 가로 지르는 데 특별히 사용됩니다.
for (arraytype varname : arrayname) {// 일부 코드}
ArrayType는 배열 유형 (배열 요소 유형)은 현재 요소를 저장하는 데 사용되는 변수입니다.
각 루프는 완료되며 배열의 다음 요소의 값은 얻어지고 배열 끝까지 varname 변수에 저장됩니다. 즉, 첫 번째 루프에서 바르 이름의 값은 0 번째 요소이고 두 번째 루프는 첫 번째 요소입니다 ... 예를 들어 :
int arraydemo [] = {1, 2, 4, 7, 9, 192, 100}; for (int x : arraydemo) {system.out.println (x + ",");}
출력 결과는 위와 동일합니다.
이 강화 된 버전의 For Loop은 "Foreach Loop"이라고도하며, 이는 Loop 문을위한 일반 간단한 버전입니다. 모든 foreach 루프는 루프를 위해 다시 작성할 수 있습니다.
그러나 배열의 인덱스를 사용하려면 루프를 위해 향상된 루프는 할 수 없습니다.
2 차원 배열
2 차원 배열의 선언, 초기화 및 참조는 1 차원 어레이와 유사합니다.
intarray [] [] = {{1,2}, {2,3}, {4,5}}; int a [] [] = new int [2] [3]; a [0] [0] = 12; a [0] [1] = 34; // ...... a [1] [2] = 93; Java 언어로서, 2 차원 배열은 배열의 배열로 간주되므로 배열 공간이 연속적으로 할당되지 않으므로 2 차원 배열의 각 차원의 크기는 동일하지 않아야합니다. 예를 들어:
int intarray [] [] = {{1,2}, {2,3}, {3,4,5}}; int a [] [] = new int [2] []; a [0] = new int [3]; a [1] = 새로운 int [5]; [예] 2 차원 배열을 통해 두 행렬의 생성물을 계산합니다.
공개 클래스 데모 {public static void main (String [] args) {// 첫 번째 행렬 (2 차원 배열의 동적 초기화) in a [] = new int [2] [3]; 행렬 (2D 배열을 정적으로 초기화) int b [] [] = {{1,5,2,8}, {5,9,10, -3}, {2,7, -5, -18}}; // 결과 매트릭스 int c [] [] = new int [2] [4]; j ++) a [i] [j] = (i+1) * (j+2); // (int i = 0; i <2; i ++) {for (int j = 0; <4; [j];}} // (int i = 0; i <2; i ++) {for (int j = 0; j <4; j ++) system.out.printf ( "%-5d", C [I] [J]); 실행 결과 :
25 65 14 -65 50 130 28 -130
몇 가지 설명 :
위는 정적 배열입니다. 정적 배열이 선언되면 용량이 고정되어 변경할 수 없습니다. 따라서 배열을 선언 할 때는 용량이 충분하지 않도록 배열의 최대 용량을 고려해야합니다.
프로그램을 실행할 때 용량을 변경하려면 배열 목록 (Dynamic Array라고도 함) 또는 벡터 (벡터)를 사용해야합니다.
정확히 실제 개발에서 자주 사용되지 않고 Arraylist 또는 Vector로 대체되는 정적 어레이의 고정 용량의 단점 때문입니다. 실제 개발에서는 종종 배열에 요소를 추가 또는 삭제해야하며 용량은 용량입니다. 추정하기 쉽지 않습니다.
Java String (String)
표면에는 문자열이 "weixueyuan", "http://www.weixueyuan.net"등과 같은 이중 인용문 사이의 데이터가 있습니다. Java에서는 다음 방법을 사용하여 문자열을 정의 할 수 있습니다.
문자열 stringName = "문자열 내용";
예를 들어:
문자열 URL = "http://www.weixueyuan.net"; String webName = "wechatyuan";
문자열은 "+"를 통해 연결할 수 있으며 문자열은 "+"작업을 수행 할 수 있으며, 이는 일반적으로 문자열로 자동 변환됩니다.
공개 클래스 데모 {public static void main (String [] args) {int stuage = 17; 등급은 " + stuscore; system.out.println (info);}}입니다. 실행 결과 :
Xiao Ming의 나이는 17 세이고 그의 성적은 92.5입니다.
문자열 문자열은 배열과 공통점이 있습니다. 즉, 초기화 된 후에는 길이가 변경되지 않고 콘텐츠는 변경되지 않습니다. 값을 변경하려면 다음과 같이 새 문자열이 생성됩니다.
String str = "hello"; str += "world!";
이 과제 표현식은 간단한 솔리테어와 비슷해 보이며, "Hello World!"라는 최종 문자열을 형성합니다. 운영 원리는 다음과 같습니다. 프로그램은 먼저 STR1 문자열을 생성하고 메모리의 공간에 적용됩니다. 문자열의 길이가 초기화 된 후에 고정되어 있기 때문에 현재 새 문자열을 추가하는 것은 불가능합니다. 그것을 바꾸고 싶다면 원래 공간 만 포기하고 "Hello World!"
실제로 String은 Java.Lang의 클래스입니다. 표준 객체 지향 구문에 따르면 형식은 다음과 같습니다.
Stringname = 새 String ( "String content");
예를 들어:
문자열 URL = 새 문자열 (http://www.weixueyuan.net);
그러나 문자열은 특히 일반적으로 사용되므로 Java는 단순화 된 구문을 제공합니다.
단순화 된 구문을 사용하는 또 다른 이유는 표준 객체 지향 구문에 따르면 메모리 사용에 비교적 큰 폐기물이 있기 때문입니다. 예를 들어, string str = new String ( "ABC")은 실제로 두 개의 문자열 객체를 만듭니다. 하나는 일정한 공간에 저장된 "ABC"객체이고, 다른 하나는 새 키워드를 사용하여 객체 str에 적용되는 공간입니다.
문자열 작동
문자열을 쉽게 작동하는 방법에는 여러 가지가 있습니다.
1) 길이 () 방법
길이 ()은 문자열의 길이를 예를 들어 반환합니다.
문자열 str1 = "weixueyuan"; String str2 = "weixueyuan"; system.out.println ( "str1의 길이는" + str1.length ()); System.out.println ( "st r2의 길이는" +입니다. str2.length ());
출력 결과 :
str1의 길이는 3입니다. str2의 길이는 10입니다.
문자, 숫자 또는 중국어이든 각 캐릭터의 길이는 1이라는 것을 알 수 있습니다.
2) charat () 메소드
charat () 메소드의 함수는 인덱스 값에 따라 문자열에서 지정된 문자를 얻는 것입니다. Java는 문자열에서 첫 번째 문자의 인덱스 값이 0이고, 두 번째 문자의 인덱스 값은 1 등이라고 규정합니다. 예를 들어:
String str = "123456789"; System.out.println (str.charat (0) + "" + str.charat (5) + "" + str.charat (8));
출력 결과 :
1 6 9
3) 포함 () 메소드를 포함합니다
포함 () 메소드는 문자열에 하위 문자가 포함되어 있는지 여부를 감지하는 데 사용됩니다.
String str = "weixueyuan"; system.out.println (str.contains ( "yuan"));
출력 결과 :
진실
4) 대체 () 메소드
문자열 교체, 예를 들어 문자열의 모든 지정된 하위 문자열을 교체하는 데 사용됩니다.
문자열 str1 = "weixueyuan의 URL은 www.weixueyuan.net!"; String str2 = str1.replace ( "weixueyuan", "weixueyuan"); system.out.println (str1); syste m.out.println (str2) );
출력 결과 :
Weixueyuan의 URL은 www.weixueyuan.net입니다! Weixueyuan의 URL은 www.weixueyuan.net입니다!
참고 : 대체 () 메소드는 원래 문자열을 변경하지 않지만 새 문자열을 생성합니다.
5) 분할 () 메소드
구분자로 지정된 문자열을 사용하여 현재 문자열을 분할하십시오.
import java.util.*; public class demo {public static void main (string [] args) {string strarr [] = str.spli t ( "_"); 배열 .TOSTRING (strarr)}}
실행 결과 :
[Wei, Xue, Yuan, Is, Good]
위의에는 일반적으로 사용되는 문자열 객체의 몇 가지 방법과 자세한 설명에 대해서는 API 문서를 참조하십시오.