作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想在Java中实现并集、相交、差集和反向操作。
首先我有两个 ArrayList<Integer>
的实例
a = [0,2,4,5,6,8,10]
b = [5,6,7,8,9,10]
联合 b 应该返回 c = [0,2,4,5,6,7,8,9,10]
a intersect b 应该返回 c = [5,8,10]
差异 b 应该返回 c = [0,2,4]
反向 a = [10,8,6,5,4,2,0]
类似的东西。
如何在 Java 中实现该方法?
更新:我必须从这个模板开始:
package IntSet;
import java.util.ArrayList;
import java.util.Collection;
public class IntSet {
private ArrayList<Integer> intset;
public IntSet(){
intset = new ArrayList<Integer>();
}
public void insert(int x){
intset.add(x);
}
public void remove(int x){
//implement here
intset.indexOf(x);
}
public boolean member(int x){
//implement here
return true;
}
public IntSet intersect(IntSet a){
//implement here
return a;
}
public IntSet union(IntSet a){
//implement here
return a;
}
public IntSet difference(IntSet a){
//implement here
IntSet b = new IntSet();
return b;
}
最佳答案
首先,您描述的操作(反向除外)是集合操作,而不是列表操作,因此请使用 HashSet 或(如果您需要排序)TreeSet。
Set<Integer> a = new TreeSet<Integer>(Arrays.asList(new Integer[]{0,2,4,5,6,8,10}));
Set<Integer> b = new TreeSet<Integer>(Arrays.asList(new Integer[]{5,6,7,8,9,10}));
//union
Set<Integer> c = new TreeSet<Integer>(a);
c.addAll(b);
System.out.println(c);
//intersection
Set<Integer> d = new TreeSet<Integer>(a);
d.retainAll(b);
System.out.println(d);
//difference
Set<Integer> e = new TreeSet<Integer>(a);
e.removeAll(b);
System.out.println(e);
//reverse
List<Integer> list = new ArrayList<Integer>(a);
java.util.Collections.reverse(list);
System.out.println(list);
关于java - 如何在java中做并集、相交、差集和反转数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3590677/
我是一名优秀的程序员,十分优秀!