无论索引如何,只从列表中获取最后一个元素

时间:2016-05-24 13:39:51

标签: java list

我在显示使用Arrays实用程序类添加到List中的元素时遇到问题。值存储是来自下面显示的类People的对象

public class People {

private static Integer age;
private static String name;

public  People(String name,Integer age){

    this.age = age;
    this.name = name;
}

public Integer getAge(){
    return this.age;
}
public String getName(){
    return this.name;
}
@Override
public String toString(){
    return "name"+this.getName()+" Age"+ this.getAge();
}

}

通过以下代码将值添加到List中:

   List<People> myPeople = Arrays.asList(

        new People("Samuel Owino", 18),
        new People("Swale Mdohe", 12),
        new People("Joseph Wambwile", 48),
        new People("Samuel Werre", 18),
        new People("Swale Mdohe", 12),
        new People("Joseph Wambwile", 48)
);

显示代码如下:

 myPeople.forEach(System.out::println);

意识到问题是在bean类,年龄和名称的实例变量上使用静态访问修饰符,当删除静态时,该方法完美地工作。感谢您的参考。

2 个答案:

答案 0 :(得分:1)

您将成员变量设置为static,它们应该是实例级别:

private Integer age;
private String name;

否则,对列表的每次添加都会覆盖People对象的共享状态。

我怀疑当变量传递给构造函数时,您要使用final而不是static

答案 1 :(得分:1)

要获得列表的最后一项,您可以执行以下操作:

CGContextSetBlendMode(context, CGBlendMode.Normal)
CGContextSetFillColorWithColor(context, UIColor(white: 0.0, alpha: 0.75).CGColor)
CGContextFillRect(context, rect)

CGContextSetBlendMode(context, CGBlendMode.Clear)
CGContextSetFillColorWithColor(context, UIColor(white: 0.0, alpha: 1).CGColor)
CGContextFillRect(context, CGRectMake(20, 150, 100, 100))
CGContextSetFillColorWithColor(context, UIColor(white: 0.0, alpha: 1).CGColor)
CGContextFillRect(context, CGRectMake(50, 200, 100, 100))

CGContextSetBlendMode(context, CGBlendMode.Normal)
CGContextSetFillColorWithColor(context, UIColor(white: 0.0, alpha: 0.25).CGColor)
CGContextFillRect(context, CGRectMake(20, 150, 100, 100))
CGContextSetFillColorWithColor(context, UIColor(white: 0.0, alpha: 0.15).CGColor)
CGContextFillRect(context, CGRectMake(50, 200, 100, 100))