【发布时间】:2019-04-18 15:35:13
【问题描述】:
我想传递两个名称数组,以便它返回一个数组,其中包含出现在一个或两个数组中的名称。返回的数组应该没有重复。
例如,调用MergeNames.uniqueNames(new String[]{'Ava', 'Emma', 'Olivia'}, new String[]{'Olivia', 'Sophia', 'Emma'}) 应该返回一个包含任意顺序的 Ava、Emma、Olivia 和 Sophia 的数组。
需要基本实现uniqueNames方法。抱歉,我是 Java 编程的新手,并试图通过尝试编码挑战来成为一名开发人员。
public class MergeNames {
public static String[] uniqueNames(String[] names1, String[] names2) {
throw new UnsupportedOperationException("Waiting to be implemented.");
}
public static void main(String[] args) {
String[] names1 = new String[] {"Ava", "Emma", "Olivia"};
String[] names2 = new String[] {"Olivia", "Sophia", "Emma"};
System.out.println(String.join(", ", MergeNames.uniqueNames(names1, names2))); // should print Ava, Emma, Olivia, Sophia
}
}
******我的解决方案欢迎任何反馈******
import java.util.*;
public class MergeNames {
public static void main(String[] args) {
String[] names1 = new String[] {"Ava", "Emma", "Olivia"};
String[] names2 = new String[] {"Olivia", "Sophia", "Emma"};
Set<String> mySet1 = new HashSet<String>(Arrays.asList(names1));
Set<String> mySet2 = new HashSet<String>(Arrays.asList(names2));
Set<String> union = new HashSet<String>(mySet1);
union.addAll(mySet2);
System.out.println("Union of the two Sets with no duplicate names : " + union);
}
}
我不确定为什么需要 uniqueNames 函数?
【问题讨论】:
-
那么继续:试试吧!试一试,我们很乐意帮助您解决具体问题。
-
这闻起来像家庭作业,但如果我真的必须在 Java 中这样做,数组可能不是我会使用的集合类型。
-
是的。每当您需要对数据集合进行操作时,如果 Java 集合 api 中已有 .retainAll() 方法,则数组不会是首选
-
@RShome 尝试找出可用于保存唯一值的数据结构。
-
你基本上是想创建一个集合。 docs.oracle.com/javase/7/docs/api/java/util/Set.html