Java 从ArrayList中删除元素
我必须从Java 从ArrayList中删除元素,java,arraylist,Java,Arraylist,我必须从ArrayList中删除元素,但我还没有完成。我必须删除的元素也可以在ArrayList中找到。简而言之,我必须从另一个数组列表中删除一个数组列表。e、 假设 ArrayList<String> arr1= new ArrayList<String>(); ArrayList<String> arr2 = new ArrayList<String>(); arr1.add("1"); arr1.add("2"); arr1.add("3
ArrayList
中删除元素,但我还没有完成。我必须删除的元素也可以在ArrayList
中找到。简而言之,我必须从另一个数组列表中删除一个数组列表。e、 假设
ArrayList<String> arr1= new ArrayList<String>();
ArrayList<String> arr2 = new ArrayList<String>();
arr1.add("1");
arr1.add("2");
arr1.add("3");
arr2.add("2");
arr2.add("4");
ArrayList arr1=new ArrayList();
ArrayList arr2=新的ArrayList();
arr1.添加(“1”);
arr1.添加(“2”);
arr1.添加(“3”);
arr2.添加(“2”);
arr2.添加(“4”);
现在,我必须从arr1中删除arr2中的元素。最后的答案是1和3。
需要做什么?阅读
使用下面的代码
List<String> resultArrayList = new ArrayList<String>(arr1);
resultArrayList.removeAll(arr2);
在发表评论之后 我使用了以下代码
ArrayList<String> arr1= new ArrayList<String>();
ArrayList<String> arr2 = new ArrayList<String>();
arr1.add("1");
arr1.add("2");
arr1.add("3");
arr2.add("2");
arr2.add("4");
System.out.println("Before removing---");
System.out.println("Array1 : " + arr1);
System.out.println("Array2 : " + arr2);
System.out.println("Removing common ---");
List<String> resultArrayList = new ArrayList<String>(arr1);
resultArrayList.removeAll(arr2);
System.out.println(resultArrayList);
那么,在你这边,什么是不起作用的呢
阅读更多关于阅读
使用下面的代码
List<String> resultArrayList = new ArrayList<String>(arr1);
resultArrayList.removeAll(arr2);
在发表评论之后 我使用了以下代码
ArrayList<String> arr1= new ArrayList<String>();
ArrayList<String> arr2 = new ArrayList<String>();
arr1.add("1");
arr1.add("2");
arr1.add("3");
arr2.add("2");
arr2.add("4");
System.out.println("Before removing---");
System.out.println("Array1 : " + arr1);
System.out.println("Array2 : " + arr2);
System.out.println("Removing common ---");
List<String> resultArrayList = new ArrayList<String>(arr1);
resultArrayList.removeAll(arr2);
System.out.println(resultArrayList);
那么,在你这边,什么是不起作用的呢
阅读更多关于将新的
arr
作为最终排序数组
for(int i=0;i<arr1.size();i++)
{
for(int j=0;j<arr2.size();j++)
if(!arr1.get(i).contains(arr2.get(j)))
{
arr.add(arr1.get(i));
}
}
for(int i=0;i采用新的arr
作为最终排序数组
for(int i=0;i<arr1.size();i++)
{
for(int j=0;j<arr2.size();j++)
if(!arr1.get(i).contains(arr2.get(j)))
{
arr.add(arr1.get(i));
}
}
for(int i=0;i可以使用removeAll()函数
/**
*从该列表中删除包含在
*指定的集合。
*
*@param c集合包含要从此列表中删除的元素
*@return{@code true}如果此列表因调用而更改
*如果此列表中某个元素的类
*与指定的集合不兼容
* ()
*如果此列表包含null元素且
*指定的集合不允许空元素
* (),
*或者如果指定的集合为空
*@see Collection#contains(对象)
*/
公共布尔removeAll(集合c){
返回(c,false);
}
您可以使用removeAll()函数
/**
*从该列表中删除包含在
*指定的集合。
*
*@param c集合包含要从此列表中删除的元素
*@return{@code true}如果此列表因调用而更改
*如果此列表中某个元素的类
*与指定的集合不兼容
* ()
*如果此列表包含null元素且
*指定的集合不允许空元素
* (),
*或者如果指定的集合为空
*@see Collection#contains(对象)
*/
公共布尔removeAll(集合c){
返回(c,false);
}
要从其他文件中删除其中一个文件的副本,请使用此
int arr1Size = arr2.size();
int arr2Size = arr2.size();
for (int i = 0; i < arr1Size; i++)
{
for (int j = 0; j < arr2Size; j++)
{
if (arr1.get(i).contains(arr2.get(j)))
{
arr1.remove(i);
}
}
}
System.out.print(arr1);
int arr1Size=arr2.size();
int arr2Size=arr2.size();
对于(int i=0;i
要从其他文件中删除其中一个文件的副本,请使用此
int arr1Size = arr2.size();
int arr2Size = arr2.size();
for (int i = 0; i < arr1Size; i++)
{
for (int j = 0; j < arr2Size; j++)
{
if (arr1.get(i).contains(arr2.get(j)))
{
arr1.remove(i);
}
}
}
System.out.print(arr1);
int arr1Size=arr2.size();
int arr2Size=arr2.size();
对于(int i=0;i
要澄清问题,请确定:
如果您的列表由基本元素组成,如字符串等
你所需要做的就是使用它
list2.removeAll(list1);
假设情况并非如此,这意味着您从custum对象创建了一个列表——由于项目比较的性质,上述方法无法工作。
它使用object.equals方法,默认情况下,该方法检查这是否是另一个列表中对象的同一实例(可能不是)
因此,为了使其正常工作,您需要覆盖自定义object equals方法
示例-根据电话号码测试两个联系人是否相同:
public boolean equals(Object o)
{
if (o==null)
{
return false;
}
if (o.getClass()!=this.getClass())
{
return false;
}
Contact c=(Contact)o;
if (c.get_phoneNumber().equals(get_phoneNumber()))
{
return true;
}
return false;
}
现在如果你使用
list2.removeAll(list1);
它将根据所需属性(在示例中是基于电话号码)比较项目,并将按计划工作。确定以澄清问题:
如果您的列表由基本元素组成,如字符串等
你所需要做的就是使用它
list2.removeAll(list1);
假设情况并非如此,这意味着您从custum对象创建了一个列表——由于项目比较的性质,上述方法无法工作。
它使用object.equals方法,默认情况下,该方法检查这是否是另一个列表中对象的同一实例(可能不是)
因此,为了使其正常工作,您需要覆盖自定义object equals方法
示例-根据电话号码测试两个联系人是否相同:
public boolean equals(Object o)
{
if (o==null)
{
return false;
}
if (o.getClass()!=this.getClass())
{
return false;
}
Contact c=(Contact)o;
if (c.get_phoneNumber().equals(get_phoneNumber()))
{
return true;
}
return false;
}
现在如果你使用
list2.removeAll(list1);
它将根据所需的属性(在示例中基于电话号码)比较项目并且将按计划工作。为每个arraylist使用两个循环,一个循环在另一个循环中。编写一些代码。可能阅读一点文档会有帮助。为每个arraylist使用两个循环,一个循环在另一个循环中。编写一些代码。可能阅读一点文档会有帮助helpful@AnilBhatiya查看我更新的代码片段,并告诉我哪些不是正在工作..然后共享您的代码..嘿,让我告诉你,我从其他活动获取了两个数组列表。意味着数组列表来自一个活动(如A)到第二个活动(如B)。我将获取生成的数组输出日志中的所有元素,以确保获得正确的数组值。不…仍然存在问题。尝试了不同的方法来解决此问题求解,但结果为零…@AnilBhatiya查看我更新的代码片段并告诉我什么不起作用..然后共享您的代码..嘿,让我告诉你,我从其他活动中获取两个数组列表。意味着数组列表来自一个活动(如A)到第二个活动(如B)。我将获取结果数组输出日志中的所有元素,以确保u得到了正确的数组值。不…仍然存在问题。尝试了不同的方法来解决,但结果为零。。。