当我在输入字段中输入object fields值时,我想从ArrayList中删除一个对象。
我有一个超类,我将添加不同米的一般信息。
public class Meter
{
// instance variables - replace the example below with your own
public String regNum;
public String workOrNot;
public String location;
/**
* Constructor for objects of class Clock
*/
public Meter(String regNum, String workOrNot, String location)
{
// initialise instance variables
setRegNum(regNum);
setWorkOrNot(workOrNot);
setLocation(location);
}
//REGISTRATION NUMBER
public void setRegNum(String regNum){
this.regNum = regNum;
}
public String getRegNum(){
return regNum;
}
//WORK OR NOT
public void setWorkOrNot(String workOrNot){
this.workOrNot = workOrNot;
}
public String getWorkOrNot(){
return workOrNot;
}
//LOCATION
public void setLocation(String location){
this.location = location;
}
public String getLocation(){
return location;
}
}
然后我有一个时钟类,它扩展了超类,并有更多的值。
public class Clock extends Meter
{
// instance variables - replace the example below with your own
public double minTime;
/**
* Constructor for objects of class Clock
*/
public Clock(String regNum, String workOrNot, String location, double
minTime)
{
// initialise instance variables
super(regNum, workOrNot, location);
setMinTime(minTime);
}
//MINNIMUM TIME
public void setMinTime(double minTime){
this.minTime = minTime;
}
public double getMinTime(){
return minTime;
}
//EQUALS METHOD --- NOT SURE WHAT IT SHOULD DO... YET!
public boolean equals (Clock other){
return location.equals(other.location);
}
public String toString(){
String retur = super.toString() + "regNum: " + regNum +
"Does it work: " + workOrNot +
"Location: " + location +
"Min time value: " + minTime;
return retur;
}
}
然后我有一个archive类,它创建了一个arrayList,其中包含不同的对象,并且当用户收到一个字段的提示时,会有一个删除对象的方法,在该字段中,他们可以将“regNum”作为字符串键入。
然后计划是,它迭代列表,找到一个具有相同“regNum”的对象,并将其从列表中删除。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MeterArchive
{
// instance variables - replace the example below with your own
ArrayList<Meter> meterList = new ArrayList<Meter>();
public void createClocks(){
Clock clockOne = new Clock("KH001", "Yes", "ClassRoom005", 0.0);
meterList.add(clockOne);
Clock clockTwo = new Clock("KH002", "Yes", "ClassRoom006", 0.0);
meterList.add(clockTwo);
}
public void remove( String regNumInput){
for(Meter meter : meterList){
for(int i = 0; i < meterList.size(); i++){
if(regNumInput == meterList.get(i).getRegNum()){
remove(meterList.get(i));
}else{
System.out.println("Did not found");
}
}
}
}
public void showAll2(){
System.out.println(meterList);
}
}
谁能解释一下当我在输入字段中输入正确的“regNum”时,如何使MeterArchive类中的删除方法删除我要删除的对象。我知道我可以使用删除()方法,但不确定如何在这里使用它。谢谢!
使用removeIf将更容易:
int size = meterList.size();
meterList.removeIf(e -> regNumInput.equals(e.getRegNum()));
if(size == meterList.size()) System.out.println("Did not found");
问题内容: 我有一个具有静态对象ArrayList的ClassA 现在,我要像这样从此列表中删除一个对象 这是用Meteorit类编写的。但是,当我想使用ArrayList中的对象时,它将引发异常。 我使用Iterator从ArrayList中删除对象,但是现在我不知道如何在这种情况下使用它。 问题答案: 这是因为某个线程实际上正在for每个循环中查看此列表,也许您正在尝试在for-each主体中
问题内容: 如果满足条件,我需要从中删除一些对象,我想知道哪种方法会更有效。 情况如下:我有一个包含包含其他一些对象的类。我必须对此进行迭代,并删除满足特定条件的所有元素。据我所知,这些是我要删除的选项: 创建一个新的并添加不符合条件的元素。迭代之后,从旧的数组列表交换到没有元素的新数组列表。 创建一个新的并添加满足条件的元素。迭代后,使用传递要删除对象的方法。 有没有更有效的方法从中删除对象?
问题内容: 我想在完成后从中删除对象,但找不到解决方法。尝试像下面的示例代码中那样将其删除不会起作用。如何在此循环中访问当前对象的迭代器以将其删除? 问题答案: 您不能在增强的for循环内。您必须使用“长手”方法: 当然,并非所有的迭代器都 支持 删除,但是您可以使用。 另一种方法是建立一个额外的“要删除的像素”集合,然后在列表最后调用。
我知道有人问过这个问题,但我不能使用它的解决方案来做我想做的事情,我的问题是每次我从函数调用并输入一个Id,它总是告诉我Id被删除,即使我输入了一个从未输入的Id,它仍然打印相同的任何提示和帮助,将不胜感激:)注意:我不想在其中使用ArrayList这里是我的代码:
我正在维护一个对象。我的对象结构是Id、name和一些其他细节。我需要删除一个带有一些id值的对象,比如(10),我不想遍历列表。有什么解决方案吗?
问题内容: 我正在获取一个json响应并将其存储在mongodb中,但是我不需要的字段也正在进入数据库中,是否仍要剥离unseccary字段? 输出: 问题答案: 您可以使用从给定对象中选取某些属性的函数: 然后: