所以我主要關心的是如何輕鬆地找到arraylist中的某些值,例如,如果我有一個充滿名稱的數組列表,我該如何輕鬆地刪除它?打印並比較陣列表「studeranden」並沒有給出它包含的真實價值,而是(我認爲)價值觀的位置,例如「[Mom1 $ studs @ bebdb06]」。我怎麼能繞過這個?在Java中主要和其他方法打印和使用arraylist
public static void main(String[] args) {
ArrayList<studs> studeranden = new ArrayList<studs>();
boolean StilldrDRE = true;
String[] alternativ = new String[5];
alternativ[0] = "Lägg till namn"; alternativ[1] = "ta bort namn"; alternativ[2] = "Swappa plats på två namn"; alternativ[3] = ""; alternativ[4] = "avsluta";
Object[] possibilities = alternativ;
while (StilldrDRE) {
Component frame = null;
Icon icon = null;
String s = (String)JOptionPane.showInputDialog(frame,"Vad skulle du villa göra? ", null, JOptionPane.PLAIN_MESSAGE, icon, possibilities, alternativ);
if(s=="Lägg till namn") {
String indata = JOptionPane.showInputDialog(null, "Vem vill du adda till listan? (t.ex \" Anton Heikinheimo, 38992\")");
studs p = new studs(indata);
studeranden.add(p);
}
if(s=="ta bort namn") {
String indata = JOptionPane.showInputDialog(null, "Vem vill du ta bort från listan? (t.ex \" Anton Heikinheimo, 38992\")");
removeName(studeranden, indata);
}
if(s=="avsluta") {
break;
// for (int i = 0; i < studeranden.size(); i++) {
// studs value = studeranden.get(i);
// System.out.println("Element: " + value.getstud());
}}
}
public static void removeName(ArrayList<studs> n_studeranden, String x) {
int xx = n_studeranden.indexOf(x);
System.out.println(n_studeranden);
n_studeranden.remove(xx+1);
JOptionPane.showMessageDialog(null, x + " togs bort från listan");
}
//else JOptionPane.showInputDialog(null, x + " hittades inte i listan");
public static class studs {
String name;
String matrik;
String data;
String x;
studs (String namn) {
data = namn;
String[] parts = data.split(",");
name = parts[0];
matrik = parts[1];
}
String getstud() {
x = name + matrik;
return x;
}}
}
請勿使用'=='來比較字符串值! – laune 2015-02-11 07:51:39