2017-01-07 2 views
-1

В данный момент мой код выглядит следующим образом:Массивы определения переменных

public String Q1o1 = "oops"; 
public String Q1o2 = "oops"; 
public String Q1o3 = "oops"; 
public String Q1o4 = "oops"; 
public String Q1o5 = "oops"; 
public String Q1o6 = "oops"; 
public String Q1o7 = "oops"; 

public String Q2o1 = "oops"; 
public String Q2o2 = "oops"; 
public String Q2o3 = "oops"; 
public String Q2o4 = "oops"; 
public String Q2o5 = "oops"; 
public String Q2o6 = "oops"; 
public String Q2o7 = "oops"; 

public String Q3o1 = "oops"; 
public String Q3o2 = "oops"; 
public String Q3o3 = "oops"; 
public String Q3o4 = "oops"; 
public String Q3o5 = "oops"; 
public String Q3o6 = "oops"; 
public String Q3o7 = "oops"; 

public String Q4o1 = "oops"; 
public String Q4o2 = "oops"; 
public String Q4o3 = "oops"; 
public String Q4o4 = "oops"; 
public String Q4o5 = "oops"; 
public String Q4o6 = "oops"; 
public String Q4o7 = "oops"; 

public String Q5o1 = "oops"; 
public String Q5o2 = "oops"; 
public String Q5o3 = "oops"; 
public String Q5o4 = "oops"; 
public String Q5o5 = "oops"; 
public String Q5o6 = "oops"; 
public String Q5o7 = "oops"; 

public String Q6o1 = "oops"; 
public String Q6o2 = "oops"; 
public String Q6o3 = "oops"; 
public String Q6o4 = "oops"; 
public String Q6o5 = "oops"; 
public String Q6o6 = "oops"; 
public String Q6o7 = "oops"; 

public String[] optionvalues1 = {Q1o1, Q1o2, Q1o3, Q1o4, Q1o5, Q1o6, Q1o7}; 
public String[] optionvalues2 = {Q2o1, Q2o2, Q2o3, Q2o4, Q2o5, Q2o6, Q2o7}; 
public String[] optionvalues3 = {Q3o1, Q3o2, Q3o3, Q3o4, Q3o5, Q3o6, Q3o7}; 
public String[] optionvalues4 = {Q4o1, Q4o2, Q4o3, Q4o4, Q4o5, Q4o6, Q4o7}; 
public String[] optionvalues5 = {Q5o1, Q5o2, Q5o3, Q5o4, Q5o5, Q5o6, Q5o7}; 
public String[] optionvalues6 = {Q6o1, Q6o2, Q6o3, Q6o4, Q6o5, Q6o6, Q6o7}; 
public String[][] optionsarray = {optionvalues1,optionvalues2,optionvalues3,optionvalues4,optionvalues5,optionvalues6}; 

есть в любом случае я могу определить строки, которые я получил в массиве, так что мой код не так долго?

Я не думаю, что для меня необходимо определить строку, а затем поместить ее в массив can not, чтобы определить String в массив.

Итак, в основном, мой вопрос: есть ли способ сократить мой код?

+0

Я изменяю значения где-то еще, «oops» - это просто место. –

+0

Проверьте ответ на этот вопрос: https://stackoverflow.com/questions/1200621/how-to-declare-an-array – AntonH

+0

это действительно ваш вопрос? вы пытаетесь сделать то, что я никогда не могу себе представить ... –

ответ

1

Вы имеете в виду это?

public String[][] optionsarray = { 
     { "oops", "oops", "oops", "oops", "oops", "oops", "oops" }, 
     { "oops", "oops", "oops", "oops", "oops", "oops", "oops" }, 
     { "oops", "oops", "oops", "oops", "oops", "oops", "oops" }, 
     { "oops", "oops", "oops", "oops", "oops", "oops", "oops" }, 
     { "oops", "oops", "oops", "oops", "oops", "oops", "oops" }, 
     { "oops", "oops", "oops", "oops", "oops", "oops", "oops" } }; 

Или может быть так?

public String[][] optionsarray = new String[6][7]; 
{ 
    for (String[] row : this.optionsarray) 
     Arrays.fill(row, "oops"); 
} 
0

Так в основном мой вопрос, есть ли способ для меня, чтобы сократить свой код?

да, вы можете использовать циклы, если строка все равно:

String[][] optionsarray = new String[6][7]; 
for (int i = 0; i < optionsarray.length; i++) 
    for (int j = 0 ; j < optionsarray[i].length; j++) 
    optionsarray[i][j] = "oops"; 
+0

Главное, вот имена переменных, которые я хочу сохранить так? –

+0

Будет ли это все еще в моем массиве Q1o1, Q1o2 и т. Д. –

+0

@JacquesCelliers * «Будет ли это все еще в моем массиве Q1o1, Q1o2 и т. Д.» * No. если вам нужны эти переменные, вы должны написать их так же, как и вы. Но я уверен, что они вам не нужны. Это связано с тем, что если вы измените значение в массиве, значение в переменной останется прежним и наоборот ... –

1

Если вы знаете, строки, которые вы хотите инициализировать 2D массив с, то вы могли бы просто сделать

final String[][] example = { { "1", "2", "3" }, { "4", "5", "6" }, { "7", "8", "9" } }; 
0

Вы можете сократить его резко. Например:

public String[][] optionsarray = new String[6][7]; 

{ 
    for (String[] row : optionsarray) { 
     Arrays.fill(row, "oops"); 
    } 
} 

, который использует блок экземпляр инициализатора, но вы могли бы вместо того, чтобы иметь петлю инициализации в конструктор (или в другом месте).

+0

Обновлено @Andreas. –

0

Это время, чтобы использовать классы и коллекции

class Question{ 
    public List<String> options; 
    public Question(){ 
     options=new ArrayList<>(); 
     options.add("oops"); 
     options.add("oops"); 
     options.add("oops"); 
     options.add("oops"); 
    } 
} 

затем где-то еще

List<Question> questions=new ArrayList<>(); 
questions.add(new Question()); 

теперь вы можете отправить этот questions объект, куда вы хотите

этот подход будет более ремонтопригодны и менее излишний.

Смежные вопросы