int[] 어레이와 int 어레이의 차이[]
저는 최근에 어레이를 정의하는 두 가지 방법의 차이에 대해 생각해 보았습니다.
int[] array
int array[]
차이가 있나요?
그것들은 의미적으로 동일합니다.int array[]
구문은 C 프로그래머가 java에 익숙해지도록 하기 위해서만 추가되었습니다.
int[] array
훨씬 더 선호되고 혼란스럽지 않습니다.
같은 선언에서 여러 변수를 선언할 경우 다음과 같은 작은 차이가 있습니다.
int[] a, b; // Both a and b are arrays of type int
int c[], d; // WARNING: c is an array, but d is just a regular int
하지만, 입니다.d
.
차이가 없다.
는 저저더가 더 요.type[] name
format at은 변수가 배열인 것이 분명합니다(특정된 변수를 찾기 위해 주위를 둘러볼 필요가 없습니다).
편집:
차이가 있습니다(한 번에 두 개 이상의 변수를 선언하지 않기 때문에 잊어버렸습니다).
int[] foo, bar; // both are arrays
int foo[], bar; // foo is an array, bar is an int.
아니, 이건 똑같아.하지만
byte[] rowvector, colvector, matrix[];
는 다음과 같습니다.
byte rowvector[], colvector[], matrix[][];
int a[],b;
int[] a,b;
다릅니다.나는 이 여러 선언들 중 어느 것도 추천하지 않는다.가장 읽기 쉬운 것은 (아마도)
int[] a;
int[] b;
Java Language Specification 섹션 10.2부터:
[ ] 는, 선언의 선두에 타입의 일부로서, 또는 특정 변수의 선언자의 일부로서, 또는 다음의 예와 같이 둘 다로서 표시될 수 있습니다.
byte[] rowvector, colvector, matrix[];
이 선언은 다음과 같습니다.
byte rowvector[], colvector[], matrix[][];
개인적으로 내가 본 거의 모든 Java 코드는 첫 번째 형식을 사용합니다. 변수에 대한 모든 유형 정보를 한 곳에 보관하면 더 의미가 있습니다.솔직히 말해서 2급은 인정받지 못했으면 좋겠는데...하지만 그게 인생이야...
다행히 이 (유효한) 코드는 본 적이 없는 것 같습니다.
String[] rectangular[] = new String[10][10];
두 명령어는 동일합니다.
구문을 사용하여 여러 개체를 선언할 수 있습니다.
int[] arrayOne, arrayTwo; //both arrays
int arrayOne[], intOne; //one array one int
참조: http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html
차이가 없다.
Sun에서 인용:
[]
로서도, 특정로서도, 그 양쪽 됩니다.이 예에서는, 「Declarator」는 「Declarator」의 일부로서도 표시됩니다.byte[] rowvector, colvector, matrix[];
은 다음과
byte rowvector[], colvector[], matrix[][];
둘 사이에는 아무런 차이가 없다; 둘 다 배열을 선언한다.int
를 한됩니다.후자는 C/C++ 프로그래머가 Java로 이동하는 경우에만 지원됩니다.
실제 차이는 없지만,
double[] items = new double[10];
유형이 배열임을 명확하게 나타내므로 권장됩니다.
인데, 이것것대대, 것은 it it it it it it it it it it it it it it it it it it it it it it it it it it it it it it에서 차용한 것입니다.C
를 기반으로 합니다.
호기심으로, 유효성을 정의하는 세 가지 방법이 있습니다.main
자에서 에서자 :
public static void main(String[] args)
public static void main(String args[])
public static void main(String... args)
을 하다int puzzle[]
은 권장되지 않습니다.int[] puzzle
코딩 규칙에 따라 선호됩니다.Java 어레이의 공식 튜토리얼도 참조해 주세요.
마찬가지로 다른 유형의 배열을 선언할 수 있습니다.
byte[] anArrayOfBytes; short[] anArrayOfShorts; long[] anArrayOfLongs; float[] anArrayOfFloats; double[] anArrayOfDoubles; boolean[] anArrayOfBooleans; char[] anArrayOfChars; String[] anArrayOfStrings;
어레이 이름 뒤에 대괄호를 넣을 수도 있습니다.
float anArrayOfFloats[]; // this form is discouraged
단, 관례상 이 형식은 권장하지 않습니다.브래킷은 어레이 유형을 나타내므로 유형 지정과 함께 표시됩니다.
마지막 단락을 메모합니다.
일부 서드파티 튜토리얼보다는 Sun/Oracle 공식 튜토리얼을 읽는 것이 좋습니다.그렇지 않으면 나쁜 관행을 배우게 될 위험이 있습니다.
차이는 없지만, Sun은 여기에 설명된 대로 타입 옆에 둘 것을 권장합니다.
은 " " " 입니다.int[] a
-왜냐하면 -왜냐하면int[]
a
두 띄어쓰기가잘못되어 있습니다.
기능적으로는 그들 사이에 차이가 없다.
Java Language Specification에는 다음과 같이 기재되어 있습니다.
The [] may appear as part of the type at the beginning of the declaration,
or as part of the declarator for a particular variable, or both, as in this
example:
byte[] rowvector, colvector, matrix[];
This declaration is equivalent to:
byte rowvector[], colvector[], matrix[][];
따라서 동일한 바이트 코드가 생성됩니다.
자바에서는 같은 말을 하는 통사적인 방법이 전혀 다릅니다.
똑같아요.한쪽이 다른 쪽보다 읽기 쉽다.
그들은 완전히 같다. int [] array
선호하는 스타일입니다. int array[]
환는 c c c c c c제제 。
둘 다 같은 뜻을 가지고 있다.단, 이러한 변종이 존재하기 때문에 다음과 같은 이점이 있습니다.
int[] a, b[];
이는 다음과 같습니다.
int[] a;
int[][] b;
단, 이것은 끔찍한 코딩 방식이며 절대 실행해서는 안 됩니다.
두 선언 스타일 간에 기능적인 차이는 없습니다.둘 다 int 배열을 선언합니다.
★★★★★★★★★★★★★★★★★.int[] a
타이프 정보를 정리해 보다 장황하게 하기 때문에 저는 그것을 선호합니다.
두 문장은 동일하지만 다음 문장은 중요한 차이가 있습니다.
// 1.
int regular, array[];
// 2.
int[] regular, array;
1. regular는 int일 뿐 2. regular와 array는 모두 int의 배열입니다.
따라서 두 번째 진술이 더 명확하기 때문에 선호됩니다.Oracle에 대한 이 튜토리얼에 따르면 첫 번째 양식도 권장되지 않습니다.
이미 설명한 바와 같이 (한 줄에 변수를 하나만 선언하는 경우) 큰 차이는 없습니다.
SonarQube는 두 번째 케이스를 마이너코드 냄새로 취급합니다.
배열 지정자 "[]"는 변수가 아닌 유형 위에 있어야 합니다(오징어:S1197)
코드의 가독성을 높이기 위해서, 어레이 지정자는 항상 타입에 배치해 주세요.그렇지 않으면 개발자는 유형과 변수 이름을 모두 확인하여 변수가 배열인지 여부를 확인해야 합니다.
비준수 코드 예시
int matrix[][]; // Noncompliant int[] matrix[]; // Noncompliant
준거 솔루션
int[][] matrix; // Compliant
그래, 정확히 똑같아.저는 개인적으로
int[] integers;
왜냐하면 정수는 int의 배열이라는 것을 당신의 코드를 읽는 사람에게 즉시 알 수 있기 때문이다.
int integers[];
특히 한 줄에 여러 개의 선언이 있는 경우에는 그렇게 명백하지 않습니다.하지만 다시 말하지만, 그것들은 동등하기 때문에, 그것은 결국 개인적인 선호로 귀결된다.
자세한 예는 Java 어레이에 관한 이 페이지를 참조하십시오.
단일 배열 참조를 선언할 때, 이들 사이에는 큰 차이가 없기 때문에 다음 두 선언은 동일합니다.
int a[]; // comfortable to programmers who migrated from C/C++
int[] a; // standard java notation
여러 어레이 참조를 선언할 때 그 차이를 찾을 수 있습니다.다음 두 문장은 같은 의미입니다.사실, 어떤 사람이 따르느냐는 프로그래머에게 달려있다.단, 표준 Java 표기법이 권장됩니다.
int a[],b[],c[]; // three array references
int[] a,b,c; // three array references
둘 다 괜찮아요.한 명만 골라서 계속 하는 게 좋을 것 같아요. (두 번째 거 할게요)
한편,int integers[]
해결책의 뿌리는 C언어에 있다(따라서 "정상적인" 접근법으로 간주될 수 있다), 많은 사람들이 발견한다.int[] integers
하나의 선언(C-스타일 선언과 반대)에서 다른 유형의 변수(즉, int 및 배열)를 생성할 수 없기 때문에 보다 논리적이다.
네, 차이가 있어요.
int[] a = new int[100]; // 'a'는 배열 자체가 아닙니다. 배열은 메모리의 다른 곳에 주소로 저장되며 'a'에는 해당 주소만 저장됩니다.
int b[] = new int[100]; // 클리어와 같은 배열을 생성하는 동안 'b'는 배열이며 정수 유형입니다.
언급URL : https://stackoverflow.com/questions/129178/difference-between-int-array-and-int-array
'programing' 카테고리의 다른 글
AngularJS 1.2$injector: 모듈러 (0) | 2022.09.22 |
---|---|
JavaScript를 사용하여 여러 키를 동시에 눌렀는지 어떻게 검출합니까? (0) | 2022.09.22 |
sql-mode=를 만드는 방법"MySQL my.cnf에서 NO_ENGINE_SUBTITION" 영속적 (0) | 2022.09.15 |
연관지을 수 있는 어레이에서 키와 그 값을 삭제하려면 어떻게 해야 합니까? (0) | 2022.09.15 |
Javascript V8 속도를 얻기 위해 Ruby, Python을 차단하는 것은 무엇입니까? (0) | 2022.09.15 |