客户ArrayList类修改Java中的特定元素
如何在自定义ArrayList中的特定点更改特定变量?我创建了一个ArrayList类,需要调整列表中的某个变量,但我似乎不知道如何实现它。我也在寻找答案,但似乎没有什么是针对我的问题的 我的超级类的代码是:客户ArrayList类修改Java中的特定元素,java,arraylist,imageicon,Java,Arraylist,Imageicon,如何在自定义ArrayList中的特定点更改特定变量?我创建了一个ArrayList类,需要调整列表中的某个变量,但我似乎不知道如何实现它。我也在寻找答案,但似乎没有什么是针对我的问题的 我的超级类的代码是: public class Parcel extends JPanel { protected int idNum; protected double charge; protected char zone; protected ImageIcon i;
public class Parcel extends JPanel
{
protected int idNum;
protected double charge;
protected char zone;
protected ImageIcon i;
protected static ArrayList<Parcel> parcelList;
protected static ParcelList newParcel = new ParcelList();
public Parcel(int id, char z)
{
this.idNum = id;
this.zone = z;
}
公共类包裹扩展JPanel
{
受保护的int-idNum;
保护双重充电;
保护炭区;
受保护的图像图标i;
受保护的静态阵列列表;
受保护的静态ParcelList newParcel=新ParcelList();
公共地块(整数id,字符z)
{
this.idNum=id;
这个区域=z;
}
我名单上的代码是
public class ParcelList extends Parcel
{
ParcelList()
{
parcelList = new ArrayList<Parcel>();
}
public void addBox(int id, char z, int w, int l, int h)
{
parcelList.add(new Box(id,z,w,l,h));
}
公共类地块列表扩展地块
{
包商()
{
parcelList=新的ArrayList();
}
公共无效地址框(整数id、字符z、整数w、整数l、整数h)
{
添加(新框(id、z、w、l、h));
}
我想做的是更改ImageIcon,例如,更改列表中第5个元素的ImageIcon,该元素包含许多具有不同图像的Box的不同实例。同时删除一个元素
用我当前设置代码的方法可以做到这一点吗?不管代码中有什么冗余,一种方法是使用
newpacket.get(index)
,修改使用setter方法从中获得的框
,然后使用newpacket.set(index,newBox)
不确定你在问什么,你读了吗?ParcelList extends Parcel
和protected*static*Arraylist…
几乎肯定是错误的,但它对我不起作用。例如,我尝试使用此newParcel.set(1,idNum=8)更改元素的idNum;
并且它返回了找不到符号方法(int,int),感谢这一帮助,所以我将使用get从(索引)中获取数据
然后使用修改后的数据使用newBox
重新定义它?实际上,如果您只修改列表中第n个对象的状态,则不需要使用set。记住,对象是引用,因此列表实际上是引用列表。当您获得框并修改它时,您正在更改对象的状态列表中的引用引用。所以set是多余的,毫无意义的。现在,如果您正在根据从列表中获得的对象创建一个新的框
对象,那么是的,您需要使用set来使新对象引用替换旧引用。那么我如何将其实现到代码中?就像我现在正在尝试这样做一样返回的是一个语法错误,表示…找不到符号方法(int,int)两个int
是索引和新数据,这很难说,因为您似乎正在将Box
对象放入ArrayList
中。然而,假设parcelList
是Box
对象的ArrayList
:Box b=parcelList.get(index);b.setIdNum(8)
还假设Box
是您自己的自定义类,您可以使用自己的setter方法来设置变量。