在Android Studio上与Jack和Java1.8一起使用时,sort(list,comparator)不反映更新的列表
Person.java在Android Studio上与Jack和Java1.8一起使用时,sort(list,comparator)不反映更新的列表,java,android,lambda,android-gradle-plugin,jack,Java,Android,Lambda,Android Gradle Plugin,Jack,Person.java package com.example.android.cardview.HackerRank; /** * Created by Chhiring on 10/5/2017. */ public class Person { private String mFirstName; private String mLastNme; public Person() { } public Person(String mFirstName,
package com.example.android.cardview.HackerRank;
/**
* Created by Chhiring on 10/5/2017.
*/
public class Person {
private String mFirstName;
private String mLastNme;
public Person() {
}
public Person(String mFirstName, String mLastNme) {
this.mFirstName = mFirstName;
this.mLastNme = mLastNme;
}
public String getmFirstName() {
return mFirstName;
}
public void setmFirstName(String mFirstName) {
this.mFirstName = mFirstName;
}
public String getmLastNme() {
return mLastNme;
}
public void setmLastNme(String mLastNme) {
this.mLastNme = mLastNme;
}
}
package com.example.android.cardview.HackerRank;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Created by Chhiring on 10/9/2017.
*/
public class LambdaExpressionExample {
public static void main(String[] args) {
List<Person> myList = new ArrayList<>();
myList.add(new Person("Chhiring", "Gurung"));
myList.add(new Person("Jon", "Skeet"));
myList.add(new Person("Joseph", "Rooney"));
myList.add(new Person("Jack","Johnson"));
System.out.println("Sort Based on first name");
Collections.sort(myList, (o1, o2) -> o1.getmFirstName().compareTo(o2.getmFirstName()));
for(Person p:myList){
System.out.println(p.getmFirstName()+" "+p.getmLastNme());
}
System.out.println("\nSort Based on last name");
Collections.sort(myList, (o1, o2) -> o1.getmLastNme().compareTo(o2.getmLastNme()));
for(Person p:myList){
System.out.println(p.getmFirstName()+" "+p.getmLastNme());
}
}
}
LambdaExpressionExample.java
package com.example.android.cardview.HackerRank;
/**
* Created by Chhiring on 10/5/2017.
*/
public class Person {
private String mFirstName;
private String mLastNme;
public Person() {
}
public Person(String mFirstName, String mLastNme) {
this.mFirstName = mFirstName;
this.mLastNme = mLastNme;
}
public String getmFirstName() {
return mFirstName;
}
public void setmFirstName(String mFirstName) {
this.mFirstName = mFirstName;
}
public String getmLastNme() {
return mLastNme;
}
public void setmLastNme(String mLastNme) {
this.mLastNme = mLastNme;
}
}
package com.example.android.cardview.HackerRank;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Created by Chhiring on 10/9/2017.
*/
public class LambdaExpressionExample {
public static void main(String[] args) {
List<Person> myList = new ArrayList<>();
myList.add(new Person("Chhiring", "Gurung"));
myList.add(new Person("Jon", "Skeet"));
myList.add(new Person("Joseph", "Rooney"));
myList.add(new Person("Jack","Johnson"));
System.out.println("Sort Based on first name");
Collections.sort(myList, (o1, o2) -> o1.getmFirstName().compareTo(o2.getmFirstName()));
for(Person p:myList){
System.out.println(p.getmFirstName()+" "+p.getmLastNme());
}
System.out.println("\nSort Based on last name");
Collections.sort(myList, (o1, o2) -> o1.getmLastNme().compareTo(o2.getmLastNme()));
for(Person p:myList){
System.out.println(p.getmFirstName()+" "+p.getmLastNme());
}
}
}
但是,当我重建并运行时,我会看到更新的结果。为什么会这样 我不理解这个问题。您看到了什么以及希望看到什么?运行不会更新我更改的列表。它显示列表中以前的值。重新生成并运行后,它将更新列表值。为什么?我只看到一套插页。以前的值是什么?更新后的值是什么?@chhring它可能看起来很迂腐,但即使它看起来很琐碎,您仍然需要在您的问题中包括观察到的输出和预期的。。。后者并不像我们很容易看到的那样重要,因为它需要基于代码,但请包括前者(观察到的)。您可以在顶部@ValentinRuano上看到Person.java类