java - 如何从数组列表中消除元素?
问题描述
我目前正在做模拟警报的作业,我有一个名为 的方法removeAlarm()
,我想强制删除我添加的警报,我尝试alarm.remove(0)
并尝试迭代但在测试程序中警报仍然存在。有人观察这个问题吗?
private ArrayList<String> alarm;
public AlarmClock() throws IllegalValueException {
super();
alarm = new ArrayList<String>();
}
public AlarmClock(int hour, int minute) throws IllegalValueException {
super(hour, minute);
alarm = new ArrayList<String>();
}
public void addAlarm(int hour, int minute) throws IllegalValueException {
int limit = 2;
int length = String.valueOf(hour).length();
String displayValue = "";
for (int i = 0; i < limit - length; i++) {
displayValue = displayValue + "0";
}
displayValue = displayValue + hour + ":";
limit = 2;
length = String.valueOf(minute).length();
for (int i = 0; i < limit - length; i++) {
displayValue = displayValue + "0";
}
displayValue = displayValue + minute;
alarm.add(displayValue);
}
public void removeAlarm() {
if (alarm.equals(getClass())) {
alarm.remove(alarm.equals(getTime()));
}
}
super.timeTick();
for (int x = 0; x < alarm.size(); x++) {
if (alarm.get(x).equals(getTime())) {
System.out.println("LARMET ÄR KLARR, VAKNAAAAA");
alarm.remove(x);
} else {
return;
}
}
我的测试程序
try {
AlarmClock alarm = new AlarmClock(12, 3);
alarm.timeTick();
System.out.println(alarm.getTime());
alarm.timeTick();
System.out.println(alarm.getTime());
alarm.removeAlarm();
alarm.addAlarm(12, 6);
alarm.timeTick();
System.out.println(alarm.getTime());
} catch (IllegalValueException a) {
System.out.println(a.getMessage());
}
System.out.println("Expected: alarm removed at 12:06 ");
System.out.println(" ");
Output
12:04
12:05
LARMET ÄR KLARR, VAKNAAAAA
12:06
Expected: alarm removed at 12:06
解决方案
alarm.remove(0) 将删除列表中的第一项。要从列表中的任何位置删除项目,该函数必须是
void removeAlarm(int target) {
alarm.remove(target);
}
或者
void removeAlarm(int hour, int min) {
alarm.remove{hour+":"+min);
}
仅删除最后一个警报:
void removeLastAlarm() {
alarm.remove(alarm.size()-1);
}
推荐阅读
- scala - 在scala中为for循环之外的变量赋值有什么用
- amazon-ec2 - 在 AWS-ECS 中的新集群上出现“RESOURCE:MEMORY”错误
- java - 使用 MVVM 架构从 FireStore 检索数据
- javascript - JavaScript button next and prev
- database - 如何在 Jmeter 中的线程关闭之前执行示例?
- twitter-bootstrap - 引导导航对齐问题
- android - 为什么我的按钮不显示设置样式?
- vaadin - 带有隐藏键的组合框
- yandex - 尝试添加我之前删除的域时出错。Yandex
- php - Foreach 循环只处理一个元素