如何合并2个字符串数组,但在Java中保持重复?
(s2中的字符串元素可以复制,但s2中的每个元素必须属于s1,即s2不能包含s1中不存在的字符串。例如,s2不能包含“手持”,因为s1不包含“手持”) Set&HashSet不允许重复 我试着列出,但没用如何合并2个字符串数组,但在Java中保持重复?,java,arrays,string,union,Java,Arrays,String,Union,(s2中的字符串元素可以复制,但s2中的每个元素必须属于s1,即s2不能包含s1中不存在的字符串。例如,s2不能包含“手持”,因为s1不包含“手持”) Set&HashSet不允许重复 我试着列出,但没用 您知道如何解决吗?列表实现应该可以正常工作。以下是使用ArrayList的代码: s2 union s1={"phone","phone", "smartphone","dumpphone"} 印刷品 for(String s : union){ System.out.println(s);
您知道如何解决吗?列表实现应该可以正常工作。以下是使用ArrayList的代码:
s2 union s1={"phone","phone", "smartphone","dumpphone"}
印刷品
for(String s : union){ System.out.println(s); }
注意:你说你只期待“电话”发生两次。为什么?从你的问题陈述中不清楚
编辑:
根据@dantuch在下面的评论,您可能正在寻找类似的东西:
phone
smartphone
dumpphone
phone
phone
smartphone
列表实现有什么问题?如果您根据您的逻辑有条件地将项目插入联合列表中,似乎没问题。我想让
s2
附加s:s1
,这些项目不在s2
中。这就是他期望的结果告诉我的:)@dantuch,我想你可能是对的——更新了我的答案
for(String s : union){ System.out.println(s); }
phone
smartphone
dumpphone
phone
phone
smartphone
String[] s1 = new String[]{"phone","smartphone","dumpphone"};
String[] s2 = new String[]{"phone","phone","smartphone"};
ArrayList<String> union = new ArrayList<>();
// Add elements of s2
for(String s : s2){ union.add(s); }
// Conditionally add elements of s1 (Only if they're not in s2)
for(String s : s1){ if(!union.contains(s)){ union.add(s); } }
phone
phone
smartphone
dumpphone