gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:30:43 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com