2016-03-03 2 views
0

У меня есть файл со списком объектов людей. строка Имя, фамилия строки, & int id. Мне нужен метод для его сортировки, метод добавления имени в массив, метод удаления имен из списка и метод для поиска в списке. update: эти методы работают, но мне нужно использовать эти методы в инструкции switch для моего основного метода в другом классе. Нужно ли мне переименовывать их или как это сделать? открытый класс aList { String fn; String ln; int id; статическое лицо p;Поиск строки, добавление строки и удаление строки в файле

List<Person> myList = new ArrayList<Person>(); 

public aList(File fi) throws FileNotFoundException { 
    Scanner sc = new Scanner(fi); 
    while (sc.hasNext()) { 
     fn = sc.next(); 
     ln = sc.next(); 
     id = sc.nextInt(); 
     System.out.println(fn + " " + ln + " " + id); 
     p = new Person(fn, ln, id); 
     myList.add(p); 
    } 
    System.out.println("After reading in the file \n"); 
    for (int i = 0; i < myList.size(); i++) { 
     System.out.print(myList.get(i).toString() + "\t"); 
    } 
    System.out.println("\n"); 
    sc.close(); 

} 

public void sortIt() { 
    Collections.sort(myList); 
    System.out.println(" After sorting \n"); 
    for (int i = 0; i < myList.size(); i++) { 
     System.out.print(myList.get(i).toString() + "\t"); 
    } 
} 

public void add(String name) { 
    myList.add(new Person(name, name, id)); 
} 

public void remove(String name) { 
    for (Person p : myList) { 
     if (p.getName().equals(name)) { 
      myList.remove(p); 
     } else 
      System.out.print("Not a valid name"); 
    } 
} 

public Person find(String name) { 
    for (Person p : myList) { 
     if (p.getName().equals(name)) { 
      return p; 

     } 
    } 
    return p; 
} 

}

+0

Пожалуйста, будьте более конкретными, чем «это не сработает». Что случилось, когда вы попытались? – VGR

ответ

0

Вот некоторые кандидаты для добавления, удаления, найти:,

public void add(String name){ 
     myList.add(new Person(name));//assumes the constructor takes in name param 
    } 
    public void remove(String name){ 
     for (Person p : myList){ 
      if (p.getName().equals(name)){//assumes person class has a getName() method 
       myList.remove(p); 
      } 
    } 
    public void find(String name){ 
     for (Person p : myList){ 
      if (p.getName().equals(name)){//assumes person class has a getName() method 
       return p; 
      } 
    } 

Re сортировки, хотя я должен был бы знать, что вы сортировки на основе - это это лексикографический порядок?

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