Поиск строки, добавление строки и удаление строки в файле

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

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;
}

}


person Community    schedule 03.03.2016    source источник
comment
Пожалуйста, уточните, чем «это не сработает». Что произошло, когда вы попытались?   -  person VGR    schedule 04.03.2016


Ответы (1)


Вот несколько кандидатов на добавление, удаление, поиск:

    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;
           }
    }

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

person Ed Cooper    schedule 03.03.2016