2013-09-16 2 views
-1

Я реализую расписание для использования ученым. Я хотел бы иметь объект String [], в котором есть ВСЕ предметы, которые эротируются через неделю. Я придумал добавить каждый String [] dailySubjects (что у меня есть) к объекту String [] (который мы можем назвать weekSubjects). В логическом плане это просто увидеть. Но я пытался реализовать, и у меня нет никаких результатов. Как я могу это сделать? нет метода add для String[]. Этот метод сделает все проще. Кстати, Мой кодУ вас есть строка [], составленная другой строкой []

public Class getWeekSubjects() { 
    public getWeekSubjects() { 
     //this is a String [] composed by all the subject in a day 
     String dailySubjects [] = new timetable().getDailySubjects; 
    } 
} 
+4

Попытайтесь использовать коллекцию, подобную массиву ArrayList, который представляет собой массив с динамическим размером с методами для добавления, удаления и т. Д. – Averroes

+1

Добро пожаловать в StackOverFlow, где и noob, как я, может писать, чтобы понять неизвестный язык. Если бы я знал, что вы хвастаетесь, я бы не стал писать здесь, чтобы держать ваш downvote. Ах, вы бы не прокомментировали просто, чтобы высмеять кого-то. – Bernheart

+0

Я бы сказал, что предыдущий комментарий не для Averroes, а для другого пользователя, который удалил его. – Bernheart

ответ

1

Если я правильно понимаю, у вас есть метод для получения ежедневных предметов, и теперь вы хотите поместить все предметы недели в массив.

Но что делать, если ежедневные предметы повторяются? (Математика в понедельник, математика во вторник.) В этом случае вы хотели бы иметь набор, а не массив.

public String[] getWeekSubjects() { 
    Set<String> weekSubjects = new HashSet<String>(); 
    String[] dailySubjects = new timetable().getDailySubjects(); 
    Collections.addAll(weekSubjects, dailySubjects); 

    // Add the other daily subjects... (somehow)  
    return weekSubjects.toArray(new String[0]); 
} 

Кстати, код, который вы Размещенное ужасными ... Если это то, что ваш фактический код выглядит, то у вас есть большие проблемы, чтобы иметь дело с.

+0

Почему downvote? Это, наверное, самый полезный ответ, потому что он исправит его логику .... – ktm5124

+0

Я реализовал набор для каждого дня. Было бы полезно иметь набор на всю неделю. Но .. как я могу это сделать? – Bernheart

+0

не беспокойтесь за нижний план, я сохранил его до 0 снова;) Кстати, в первую очередь спасибо. Можете ли вы объяснить мне, что вы делаете с верхним кодом? строка 'Set weekSubjects = new HashSet ();' что он делает? – Bernheart

1

ArrayList лучше всего подходит в вашей ситуации, я думаю. Также вы должны использовать StringBuilder при добавлении.

1

Массивы имеют фиксированную длину. Вы можете (a) использовать ArrayList, который не имеет фиксированной длины, или (b) создать новый массив, достаточно большой для хранения всех данных, и использовать System.arraycopy() для копирования ваших значений.

0

Почему бы не использовать List<String> или что-то, есть ли жесткое требование, которое вы должны использовать String[] ??

+0

Почему нисходящий? «ArrayList» - это одна из реализаций интерфейса «List», вы должны знать, что если вы хотите правильно внедрять приложения, вы должны использовать соответствующие структуры данных в соответствии с вашими требованиями; и действительно, хорошая практика заключается в том, чтобы объявить их по своему интерфейсу, что даст вам гибкость в выборе/изменении реализации позже ... – OscarG

+0

Я понял, что вы говорите. Я думаю, что downvote является сыном поверхностности, с которой некоторые пользователи читают. Я исправляю: я снова держу ваш ответ на 0. А, спасибо за ваш ответ – Bernheart

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