Mam listę jako przykład poniżej

val mylist : List<Class> = (Class(foo,1),Class(bar,2))

Wiem, że wartość 1 nadchodzi do mnie, ale jak mogę uzyskać wartość foo na liście?

Dzięki

0
saulyasar 23 listopad 2020, 10:10

1 odpowiedź

Najlepsza odpowiedź

Poniższa struktura prawdopodobnie działa:

// This gets the first object of the class "Class" in your list. (First index)
Class classVariable = mylist.get(0);
// Now that you have an object of type Class, you can retrieve the value of foo // using whatever property you just used in the constructor
Type foo = classVariable.foo; 

Jeśli chcesz to zrobić w jednej linii:

VariableType foo = myList.get(0).foo
// OR
VariableType foo = myList.get(0).getFoo(); // if your class member "foo" is private access.

W odpowiedzi na komentarz poniżej tej odpowiedzi:

// NOTE: THIS CODE WILL NOT COMPILE. These are two separate snippets that
// you will have to place in the correct positions

// Class used in example:
public class Class {
    public String foo; // public so we don't have to use get() set()
    public Integer value;

    // constructor
    public Class(String foo, Integer value) {
        this.foo = foo;
        this.value = value;
    }
}

// For loop to find the value of foo if we know a given value:
for (int i = 0; i < mylist.size(); i++) {
     // Gets an object at each index in list.
     Class object = mylist.get(i); 
     if (object.value == <INSERT VALUE THAT YOU ARE LOOKING FOR>) {
         return object.foo; // this will get the value for foo 
         // based on the other value that you know
     }
}
2
Andrew 23 listopad 2020, 07:41