2009-06-06 4 views
1

Что бы я хотел сделать, это иметь цикл, который каждый раз называет определенное количество переменных. Поэтому иногда, когда я запускаю программу, этот цикл будет создавать, скажем, 3 переменные a1, a2 & a3, но в других случаях он мог бы назвать больше, например. (Если такого рода вещи были возможны):Можно ли назвать переменную с использованием переменной в Java?

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

Таким образом, в случае (for i=1) имя междунар будет a1 и содержит Int 1. Это явно не будет работать, но мне было интересно, если там был способ достижения этого эффекта - или я должен прекратить взлом и использовать другую структуру данных?

Спасибо.

Кроме того, это всего лишь пример. Я использую его для создания массивов.

ответ

15

Нет, это невозможно. Java не имеет возможности создавать символы. Однако вы можете использовать его для определения массивов переменных размеров. Например:

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

Это похоже на то, что вы можете пожелать.

1

Я бы просто создал массив массивов, где индекс равен значению i.

+0

почему бы плакат нужен массив массивов? –

+0

Объекты, которые искатель будет помещать в массив, который вы предоставили в своем ответе, будут массивом, как описано в его вопросе. Таким образом, ответы в основном одинаковы, за исключением того, что я не дал код. –

2

Вместо того, чтобы пытаться определить переменные a1, a2, a3, ... Вы можете просто определить массив фиксированного размера:

int[] anArray = new int[10]; 

и обратитесь к [1], а [2], а [ 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 
Смежные вопросы