现在有4个数或字母啊或什么你喜欢的东西,输出重复的值的编号(或其他能确定身份的东西)。
比如int ddd[]={1,2,3,4};因为没有重复的值,返回null或其他你想返回的。
{2,2,3,3}返回0,1,2,3(数组下标,或其他你喜欢用的东西)
{2,1,2,3)返回0,2
{2,2,2,2}返回0,1,2,3
{2,2,2,3}返回0,1,2
数是乱序的;可能有0,1,2,3,4个相同的数。
现在有4个数或字母啊或什么你喜欢的东西,输出重复的值的编号(或其他能确定身份的东西)。
比如int ddd[]={1,2,3,4};因为没有重复的值,返回null或其他你想返回的。
{2,2,3,3}返回0,1,2,3(数组下标,或其他你喜欢用的东西)
{2,1,2,3)返回0,2
{2,2,2,2}返回0,1,2,3
数是乱序的;可能有0,1,2,3,4个相同的数。
[code="java"]/**
*
* @param sourceList 基准数组
* @param targetList 要比较的数组
* @return 重复的index列表
*/
private List getRepeat(List sourceList,
List targetList) {
List indexList = new ArrayList();
for (int i = 0; i < targetList.size(); i++) {
if (sourceList.contains(targetList.get(i))) {
indexList.add(i);
}
}
return indexList;
}
/**
*
* @param indexList 重复的index列表
*/
private void printIndex(List<Integer> indexList) {
if (null == indexList || indexList.size() == 0) {
System.out.println("null");
return;
}
for (Integer i : indexList) {
System.out.print(i + "、");
}
}
@Test
public void test() {
List<String> sourceList = Arrays.asList("1", "2", "3", "4");
List<String> targetList1 = Arrays.asList("2", "2", "3", "3");
List<String> targetList2 = Arrays.asList("2", "2", "2", "2");
List<String> targetList3 = Arrays.asList("5", "5", "5", "5");
printIndex(getRepeat(sourceList, targetList1));
printIndex(getRepeat(sourceList, targetList2));
printIndex(getRepeat(sourceList, targetList3));
}[/code]