i am newbee in java and trying to remove elements from list array. Have been tried many variants, but always get input error and nothing been deleted from list. Have tried take make condition like: if (list.contains(tch.getSurname())
or something like this, always get error that input error. Hope, you will help me to resolve this problem.
package com.company;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
static Main main = new Main();
/*public static Teachers tch = new Teachers(surname, name);*/
public static List<Teachers> list = new ArrayList<Teachers>();
public static void io(){
Scanner sc = new Scanner(System.in);
String surname = "";
String name = "";
Teachers tch = new Teachers(surname, name);
for (int i=0; i<2; i++) {
surname = sc.nextLine();
name = sc.nextLine();
tch = new Teachers(surname, name);
list.add(tch);
}
for(Teachers nstr : list) {
System.out.println(nstr.toString());
}
for(Teachers t : list) {
String input = sc.nextLine();
if (input == tch.getSurname()) {
list.remove(input);
} else {
System.out.println("Wrong input");
}
}
for(Teachers nstr : list) {
System.out.println(nstr.toString());
}
}
public static void main(String[] args) {
main.io();
}
}
UPDATE: So i'm tried to use iterator, i've added:
for (Iterator<Teachers> it = list.iterator(); it.hasNext();){
Teachers t = it.next();
if (t.equals(tch.getSurname())){
it.remove();
}
}
and delete:
for(Teachers t : list) {
String input = sc.nextLine();
if (input.equals(tch.getSurname())) {
list.remove(tch);
} else {
System.out.println("Wrong input");
}
}
But it also didn't help me to delete element from list array, it just duplicate my input for list.