无法在Java中返回ArrayList
编辑,所以我修改了我的方法如下:无法在Java中返回ArrayList,java,arraylist,Java,Arraylist,编辑,所以我修改了我的方法如下: import java.util.ArrayList public ArrayList<ParkingTicket> getTicketArrayByLicenseNumber(String licensePlate){ ArrayList<ParkingTicket> tickets = new ArrayList(); for(ParkingTicket list: ticketList){
import java.util.ArrayList
public ArrayList<ParkingTicket> getTicketArrayByLicenseNumber(String licensePlate){
ArrayList<ParkingTicket> tickets = new ArrayList();
for(ParkingTicket list: ticketList){
String ticket = list.getCarLicensePlateNumber();
if(ticket != null && ticket.equalsIgnoreCase(licensePlate)){
tickets.add(list);
}
}
return tickets;
}
我是不是遗漏了什么
根据我的任务,我需要创建一个方法,该方法获取一个汽车牌照(一个字符串),并返回发给汽车的任何停车罚单对象的数组
停车罚单是ArrayList的一部分
private ArrayList<ParkingTicket> ticketList;
public ParkingTicket getTicketArrayByLicenseNumber(String licensePlate){
for(ParkingTicket list: ticketList){
String ticket = list.getCarLicensePlateNumber();
if(ticket != null && ticket.equalsIgnoreCase(licensePlate)){
return list;
}
}
return null;
}
private ArrayList ticketList;
公共停车场许可证getTicketArrayByLicenseNumber(字符串许可证){
对于(停车场客户列表:票务列表){
String ticket=list.getCarLicensePlateNumber();
if(ticket!=null&&ticket.equalsIgnoreCase(licensePlate)){
退货清单;
}
}
返回null;
}
突然想到现在该怎么办,因为代码似乎没有返回我想要的东西…您返回的是对象,而不是对象列表 如果您熟悉Java 8 streams,可以按如下方式解决此问题:
private List<ParkingTicket> ticketList;
private List<ParkingTicket> getTicketArrayByLicenseNumber(String licensePlate) {
return ticketList.stream()
.filter(parkingTicket -> isLicensePlateNumberMatching(licensePlate, parkingTicket.getCarLicensePlateNumber()))
.collect(Collectors.toList());
}
private boolean isLicensePlateNumberMatching(String licensePlate, String carLicensePlateNumber) {
return carLicensePlateNumber != null && carLicensePlateNumber.equalsIgnoreCase(licensePlate);
}
private-List-ticketList;
私有列表getTicketArrayByLicenseNumber(字符串许可证模板){
returnticketlist.stream()
.filter(parkingTicket->isLicensePlateNumberMatching(licensePlate,parkingTicket.getCarLicensePlateNumber())
.collect(Collectors.toList());
}
私有布尔isLicensePlateNumberMatching(字符串licensePlate、字符串carLicensePlateNumber){
返回carLicensePlateNumber!=null&&carLicensePlateNumber.equalsIgnoreCase(licensePlate);
}
对于不使用流的解决方案,您应继续:
private List<ParkingTicket> getTicketArrayByLicenseNumber(String licensePlate) {
List<ParkingTicket> ticketsMatching = new ArrayList<>();
for (ParkingTicket parkingTicket : ticketList) {
if(isLicensePlateNumberMatching(licensePlate, parkingTicket.getCarLicensePlateNumber())){
ticketsMatching.add(parkingTicket);
}
}
return ticketsMatching;
}
private List getTicketArrayByLicenseNumber(String-licensePlate){
List ticketsMatching=new ArrayList();
对于(ParkingTicket ParkingTicket:ticketList){
if(IsLicensePlateNumber格式化(licensePlate,parkingTicket.getCarLicensePlateNumber()){
ticketsMatching.add(parkingTicket);
}
}
退票匹配;
}
您需要创建一个新列表(例如,java.util.ArrayList
)并将每个匹配的许可证“复制”(添加)到此新列表中。您的任务似乎表明您需要返回一个数组(如方法名称和断言消息所示),但您返回的是一个ArrayList
。您可以使用将ArrayList
转换为ParkingTicket[]
(您还必须相应地调整返回类型)。
private List<ParkingTicket> getTicketArrayByLicenseNumber(String licensePlate) {
List<ParkingTicket> ticketsMatching = new ArrayList<>();
for (ParkingTicket parkingTicket : ticketList) {
if(isLicensePlateNumberMatching(licensePlate, parkingTicket.getCarLicensePlateNumber())){
ticketsMatching.add(parkingTicket);
}
}
return ticketsMatching;
}