java中ArrayList使用remove注意事项.docx
- 文档编号:20186806
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:12
- 大小:14.84KB
java中ArrayList使用remove注意事项.docx
《java中ArrayList使用remove注意事项.docx》由会员分享,可在线阅读,更多相关《java中ArrayList使用remove注意事项.docx(12页珍藏版)》请在冰豆网上搜索。
java中ArrayList使用remove注意事项
java中ArrayList使用remove注意事项
//在remove一条信息时,
ArrayList的大小已经改变(即list.size()已经改变);
在i大于等于list.size()时,循环跳出,后便的ArrayList不能再执行;
所以必须在remove的同时,执行i--,即i=i-1;
现在才能遍历所有List中的信息。
也不能在用Iterator遍历时使用remove,会抛异常。
publicclassTrickyAL{
public
staticLinkedList<User>llu=new
LinkedList<User>();
public
staticHashMap<String,User>hmu=new
HashMap<String,User>();
public
staticArrayList<User>ulist=new
ArrayList<User>(Arrays.asList
(new
User[]{
newUser(2,"Eric"),
newUser(3,"Eric"),
newUser(1,"Aaron"),
newUser(4,"Eric")
}
));
static{
llu.add(newUser(1,"Aaron"));
llu.add(newUser(2,"Eric"));
llu.add(newUser(3,"Tom"));
hmu.put("1",newUser(3,"Tom"));
hmu.put("2",newUser(2,"Eric"));
hmu.put("3",newUser(1,"Leo"));
hmu.put("3",newUser(4,"Scott"));
}
public
staticvoid
deleteUser(ArrayList<User>
urlist,Stringauser){
Iteratoritr=urlist.iterator();
intc=urlist.size();
for(inti=0;i<c;i++){
if(auser.equals(urlist.get(i).name)){
urlist.remove(i);
i--;
c--;
}
}
}
publicstaticvoid
deleteUser(LinkedList<User>
urlist,Stringauser){
Iteratoritr=urlist.iterator();
intc=urlist.size();
for(inti=0;i<c;i++){
if(auser.equals(urlist.get(i).name)){
urlist.remove(i);
i--;
c--;
}
}
}
publicstaticvoid
deleteUser(HashMap<String,User>
urlist,Stringauser){
int
c=urlist.size();
Iterator
hmi=urlist.entrySet().iterator();
String
ks="";
for(String
sk:
urlist.keySet()){
if(auser.equals(urlist.get(sk).name)){
System.out.println(auser);
ks=sk;
break;
}
}
urlist.remove(ks);
}
public
staticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
//ArrayListmul=(ArrayList)ulist;
System.out.println(ulist);
//deleteUser(ulist,"Eric");
//Arrays.sort(ulist.toArray());
System.out.println(ulist);
System.out.println("2->"+llu);
Collections.reverse(llu);
deleteUser(llu,"Eric");
System.out.println(llu);
System.out.println("3->"+hmu);
deleteUser(hmu,"Eric");
System.out.println(hmu);
Collections.copy(ulist,llu);
System.out.println(ulist);
System.out.println(llu);
}public
staticclassUser{
publicintid;
publicStringname;
publicUser(intid,Stringname){
this.id=id;
this.name=name;
}
publicStringtoString(){
return
String.valueOf(this.id)+","+this.name;
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java ArrayList 使用 remove 注意事项