java - 如何在java中做并集、相交、差集和反转数据

标签 java

我想在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/

相关文章:

java - JPA 和 Hibernate 缺少 INNER JOIN ON 子句

java - 带有自定义比较器对象的二进制搜索不检查第一个元素

java - 尝试使用套接字检索页面时不断收到相同的错误代码(错误请求)

java - 具有混合 Java 1.6 和 1.7 namespace 的 Maven ClassNotFoundException

java - spring boot websocket配置错误

java - JTextComponent 中的多种字体和样式

java - 如何将 ActionListener 添加到模态 JDialog?

java - 我们如何从 GraphQL 的 RequestContextHolder 获取 GraphQL 的 HttpServletRequest(DefaultGlobalContext)(使用 graphql-spqr-spring-boot-starter)?

Java - ArrayList 和 ArrayList<Object> 是两个不同的类吗?

java - 使用 Swing 进行语法着色