Java 从集合对象高效地添加和删除元素

Java 从集合对象高效地添加和删除元素,java,Java,下面的代码是工作示例,但我仍然不满意与performancewise相关的代码。请查看并让我知道是否有更好的方法。提前感谢 向arraylist对象添加项目 String resultItems[] = paging.getMoveLeftArray().split(","); String fields[]={"id","name","name1"}; leftObj=new ArrayList(); for(int i=0;i<resultItems.length;i++){ /

下面的代码是工作示例,但我仍然不满意与performancewise相关的代码。请查看并让我知道是否有更好的方法。提前感谢

向arraylist对象添加项目

String resultItems[] = paging.getMoveLeftArray().split(",");
String fields[]={"id","name","name1"};

leftObj=new ArrayList();

for(int i=0;i<resultItems.length;i++){

//below line mea

TestVO bean=new TestVO();

String resultItem = resultItems[i];

String idANDname[] = resultItem.split("@");

String id = idANDname[0];

// name or id should not contain "-"

String name[] = idANDname[1].split("-");

//values and fileds are always having same length

for(int j=0;j<name.length;j++) {

PropertyUtils.setProperty(bean, fields[j], name[j]);

}

leftObj.add(bean);

}
String resultItems[]=paging.getMoveLeftArray().split(“,”);
字符串字段[]={“id”、“name”、“name1”};
leftObj=新的ArrayList();
对于(inti=0;i您可以尝试

List<TestVO> leftObj=new ArrayList<TestVO>();
for(String resultItem : paging.getMoveLeftArray().split(",")) {
     String[] names = resultItem.split("@")[0].split("-");
     leftObj.add(new TestOV(names[0], names[1], names[2]));
}
List leftObj=new ArrayList();
for(字符串resultItem:paging.getMoveLeftArray().split(“,”)){
字符串[]名称=resultItem.split(“@”)[0]。split(“-”;
add(newtestov(名称[0],名称[1],名称[2]);
}
向TestOV添加一个构造函数,用于设置三个字段

假设第一个'-'在第一个'@'之前,getId()应该是一个int值,因此您不需要强制转换它。只有当您打算同时从不同线程读取和写入时,才需要CopyOnWriteArrayList

Set<Integer> removeIds = new HashSet();
for(String resultItem: paging.getMoveRightArray().split(","))
     removeIds.add(Integer.parseInt(resultItem.split("-")[0]));
List<TestOV> tempList=new ArrayList(), newTempList=new ArrayList();
for(TestVO tempVO: availableList)
   (removeIds.contains(tempVO.getId()) ? tempList : newTempList).add(tempVO);
Set removeIds=new HashSet();
for(字符串resultItem:paging.getMoveRightArray().split(“,”))
add(Integer.parseInt(resultItem.split(“-”[0]));
List templast=new ArrayList(),newtemplast=new ArrayList();
for(TestVO tempVO:availableList)
(removeIds.contains(tempVO.getId())?模板列表:newTempList.add(tempVO);

如果你真的需要答案,请将你的代码重新格式化到可读的程度。与其发布这些代码,为什么你不解释一下你想要完成什么?为什么你认为你需要这些临时文件,或者任何写下的行为?同意虚构的说法,代码是不可读的……伟大的彼得,简单的解决方案,就是一切删除元素没问题。在哪里删除某些内容?我只在第二种情况下看到add(),我不是从集合中完全删除,如果不匹配,我是将元素添加到另一个列表中。请验证“从arraylist对象中删除项:availableList”部分中的代码是否包含所有TestVO对象:
Set<Integer> removeIds = new HashSet();
for(String resultItem: paging.getMoveRightArray().split(","))
     removeIds.add(Integer.parseInt(resultItem.split("-")[0]));
List<TestOV> tempList=new ArrayList(), newTempList=new ArrayList();
for(TestVO tempVO: availableList)
   (removeIds.contains(tempVO.getId()) ? tempList : newTempList).add(tempVO);