我想用Java8lambda表达式在java列表中找到max值,所以,我有一个类叫TicketMaster,项表是TicketMasterLog,在TicketMasterLog类中我有StatusMaster类的statusId引用列,所以这里我想在TicketMasterLog列表中找到max statusId,下面我给出我的代码请参考
@Entity
@Table(name="ticket_master")
@NamedQuery(name="TicketMaster.findAll", query="SELECT t FROM TicketMastert")
public class TicketMaster implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="TICKET_ID", unique=true, nullable=false, length=10)
private String ticketId;
//bi-directional many-to-one association to TicketMasterLog
@OneToMany(mappedBy="ticketMaster",cascade=CascadeType.ALL)
private List<TicketMasterLog> ticketMasterLogs;
//getters and stters
}
而TicketMasterItem表是
@Entity
@Table(name="ticket_master_log")
@NamedQuery(name="TicketMasterLog.findAll", query="SELECT t FROM TicketMasterLog t")
public class TicketMasterLog implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private TicketMasterLogPK id;
//bi-directional many-to-one association to StatusMaster
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="STATUS_ID")
private StatusMaster statusMaster;
//bi-directional many-to-one association to TicketMaster
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="TICKET_ID", nullable=false, insertable=false, updatable=false)
private TicketMaster ticketMaster;
//getters and setters
}
@Entity
@Table(name="status_master")
@NamedQuery(name="StatusMaster.findAll", query="SELECT s FROM StatusMaster s")
public class StatusMaster implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="STATUS_ID", unique=true, nullable=false, length=10)
private String statusId;
@Column(name="STATUS_NAME", length=45)
private String statusName;
//bi-directional many-to-one association to TicketMasterLog
@OneToMany(mappedBy="statusMaster")
private List<TicketMasterLog> ticketMasterLogs;
//getters and setters...
List<TicketMasterLog> tl = //some objects;
因此,在列表中,我希望找到最大状态id值
谢谢你。
您可以使用:
Stream<TicketMasterLog> ticketMasterLogStream = tl.stream();
TicketMasterLog max = ticketMasterLogStream.reduce((a,b)->
a.getStatusId.compareTo(b.getStatusId) > 0 ? a:b;
).get()
我有一个SeniorEmployee类,它有一些属性,在这个属性下我有JuniorEmployee列表。现在我的标准是在SeniorEmployee中通过流和基于一些标准进行迭代,然后对于与筛选标准匹配的SeniorEmployee,我们需要在juniorEmployee列表中进行迭代,并计算他们的总薪资。那么,我如何通过流在单个lambda表达式中实现它呢?请帮帮忙。 如果EmpCode为10,
我必须得到包含最大值的对象列表。Java8中的比较器max只返回一个对象。 为了做到这一点,我必须流式地显示两次列表: 这个解决方案有效。我想有一个更好的方法来解决这个问题,但我想不出来。
我怎样才能得到这3家酒店的名单,以便我可以对他们进行操作?我唯一想到的是通过和获得最低价格,然后查询列表中有最低价格的商品,但这听起来不太好。
我有这样的课: 和类似的列表,其中填充了元素。 如何使用Java8获得的最小值和最大值?
假设我有员工数据列表。 使用上面的empList,如何获得两个不同的列表,如年龄