2016-09-17 3 views
0

Может ли кто-нибудь объяснить, откуда будут входить эти скелетные коды.Запланированный календарь на Java

Скелет код выглядит следующим образом:

Data.java

import java.util.Date; 
import java.util.List; 

public interface Data { 

// Return a list of all appointments at the given location (at any time) 
// If there are no such appointments, return an empty list 
// Throws IllegalArgumentException if the argument is null 
public List<Schedule> getSchedule(String location); 

// Return the next appointment at or after the given time (in any location) 
// If there is no such appointment, return null 
// Throws IllegalArgumentException if the argument is null 
public Schedule getNextSchedule(Date when); 

// Return the next appointment at or after the given time, at that location 
// If there is no such appointment, return null 
// Throws IllegalArgumentException if any argument is null 
public Schedule getNextSchedule(Date when, String location); 

// Create a new appointment in the calendar 
// Throws IllegalArgumentException if any argument is null 
public void add(String description, Date when, String location); 

// Remove an appointment from the calendar 
// Throws IllegalArgumentException if the argument is null 
public void remove(Schedule schedule); 
} 

Calendar.java

import java.util.Date; 
import java.util.List; 

public class Calendar implements Data { 

// We will use this when we test 
public Calendar() { 
} 

@Override 
public List<Schedule> getSchedule(String location) { 
    // TODO 
    return null; 
} 

@Override 
public Schedule getNextSchedule(Date when) { 
    if(when == null) { 
     throw new IllegalArgumentException("time was null"); 
    } 
    // TODO 
    return null; 
} 

@Override 
public Schedule getNextSchedule(Date when, String location) { 
    // TODO 
    return null; 
} 

@Override 
public void add(String description, Date when, String location) { 
    // TODO 
} 

@Override 
public void remove(Schedule schedule) { 
    // TODO 
} 
} 

Schedule.java

import java.util.Date; 

public interface Schedule { 

public String getDescription(); 

public String getLocation(); 

public Date getStartTime(); 

} 
мне нравится

также знать:

  • С чего начать, я попытался начать, но я не уверен, что вернуться в первый раздел todo, обозначенный getSchedule. Я знаю, что я не могу вернуть местоположение, потому что метод вызывает возврат типа List (?).
+0

Я думаю, что было бы легче ответить на конкретный и четко заданный вопрос. Подумайте о конкретных вопросах, а не «объясните, что делает этот длинный код». – c0der

+0

Точка, я добавил некоторые вопросы внизу, я буду продолжать добавлять больше, поскольку я продолжаю пытаться код. – Ryota

+0

Ознакомьтесь с документацией о списках/коллекциях. – zapl

ответ

0

<> используются в таких классах, как коллекции и карты. означает, что существует коллекция (например, ArrayList), которая может содержать элементы типа Schedule. Если у вас есть карта, как в HashMap, то вам нужно поставить 2 типа в этих <>: Ключ (например, Integer) и объект (например, String)

HashMap<Integer, String> 

Теперь вы можете получить элемент из Карта, использующая

thisIsMyMap.get(7); 

Этот метод возвращает экземпляр типа Schedule с ключом 7, сохраненным в Integer. Вы должны использовать Integer вместо int, потому что Map или List не могут содержать простые типы, такие как int, double, boolean.

Теперь к вашей проблеме: , прежде чем вернуть то, что в методе getSchedule (Строка местоположения), необходимо иметь список для хранения расписаний, как это:

ArrayList<Schedule> schedules = new ArrayList<Schedule>(); 

, то вы можете просматривать список в метод getSchedule (String местоположение) и написать все записи с правой loation в другом списке, и вернуть его:

@Override 
public List<Schedule> getSchedule(String location) { 
    ArrayList<Schedule> right = new ArrayList<Schedule>(); 
    for(int i = 0; i<schedules.size(); i++) 
    { 
     if(schedules.get(i).getLocation().equals(location)) 
      right.add(schedules); 
    } 
    return right; 
} 

вы написали вы хотите использовать HashTrees. Я думаю, что это лучше и быстрее, если вы просто используете ArrayList. Да, вы можете поместить HashTrees в определенном порядке, но это намного сложнее, и он также работает со списками.

Antilog

+0

Я пробовал использовать этот код, но он продолжает заставлять меня бросать (расписание), несмотря на то, что график arraylist имеет общий тип расписания, когда я его бросаю, arraylist рассматривается как пустой массив ...Как это исправить? Я думал, что кто-то сделает графики, в которых arraylist содержит входные данные, но я не понимаю, как это сделать – Ryota

+0

, где и что вы делаете? arraylist - пустой массив, если вы не вставляете в него никаких значений. Попробуйте сделать интерфейс для добавления adn удаления расписаний. – Antilog

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