2009-06-06 5 views
1

내가하고 싶은데 매번 특정 수의 변수 이름을 지정하는 루프가 있습니다. 그래서 때로는 프로그램을 실행할 때이 루프는 3 개의 변수 a1, a2 & a3을 만들지 만 다른 경우에는 더 많은 것을 지정할 수 있습니다. 경우 (for i=1) INT의 이름 A1 것에 따라서Java에서 변수를 사용하여 변수의 이름을 지정할 수 있습니까?

for(int i=1; i<=n;i++) { 
    int ai = i; 
} 

와 INT 1.이 명확하게 작동하지 않습니다 포함되어 있지만이 있다면 궁금 해서요 : (이런 종류의 물건이 가능했던 경우) 이 효과를 얻는 방법 - 또는 해킹을 중지하고 다른 데이터 구조를 사용해야합니까?

감사합니다.

또한 이것은 단지 예입니다. 나는 그것을 배열을 만드는 데 사용하고있다.

답변

15

아니요, 불가능합니다. Java는 기호를 만들 수있는 방법이 없습니다. 그러나이를 사용하여 가변 크기 배열을 정의 할 수 있습니다. 예를 들면 다음과 같습니다.

int[] a = new int[n]; 
for(int i = 0; i < n; i++) { 
    a[i] = i; 
} 

원하는 것 같습니다.

1

인덱스가 i 값과 동일한 배열 배열을 만들뿐입니다.

+0

왜 포스터가 배열의 배열을 필요? –

+0

질문자가 대답에 제공 한 배열에 넣을 개체는 그의 질문에서 설명한대로 배열이됩니다. 따라서 코드를 제공하지 않았다는 것을 제외하고는 기본적으로 응답은 같습니다. –

2

오히려 A2, A3, ...는 단순히 고정 된 크기 어레이를 정의 할 수 있고, 변수 (A1)을 정의하는 것보다 :

int[] anArray = new int[10]; 

및 참조 A [1], A [2], A [ 3], ...

2

HashMap을 사용할 수 있습니까?

import java.util.HashMap; 
import java.util.Map; 


public class test { 

    public static void main(String[] args) { 

     //Fill your map structure 
     Map<String, Integer> theMap = new HashMap<String, Integer>(); 
     for(int i = 1; i <= 100; i++) { 

      theMap.put("a" + i, i); 
     } 

     //After this you can access to all your values 
     System.out.println("a55 value: " + theMap.get("a55")); 
    } 
} 

프로그램 출력 :

a55 value: 55 
관련 문제