package test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SameElement {
public static List<String> getAllSameElement2(String[] strArr1,String[] strArr2)
{
if(strArr1 == null || strArr2 == null) {
return null;
}
Arrays.sort(strArr1);
Arrays.sort(strArr2);
List<String> list = new ArrayList<String>();
int k = 0;
int j = 0;
while(k<strArr1.length && j<strArr2.length) {
if(strArr1[k].compareTo(strArr2[j])==0) {
if(strArr1[k].equals(strArr2[j]) ) {
list.add(strArr1[k]);
k++;
j++;
}
continue;
} else if(strArr1[k].compareTo(strArr2[j])<0){
k++;
} else {
j++;
}
}
return list;
}
public static void main(String[] args)
{
String[] s1=new String[4];
s1[0]="12";s1[1]="12";s1[2]="13";s1[3]="14";
String[] s2=new String[4];
s2[0]="12";s2[1]="13";s2[2]="13";s2[3]="16";
List<String> list=getAllSameElement2(s1,s2);
System.out.println(list.size());
}
}
输出结果:
2
本文介绍了一个用于找出两个字符串数组共有元素的算法实现。通过排序和双指针技术,该算法能够高效地找到并返回所有相同的元素。
1万+

被折叠的 条评论
为什么被折叠?



