public static void main(String[] args) throws Exception {
List<String>list = new ArrayList<String>()
list.add("123")
list.add("456")
list.add("555")
list.add("123")
list.add("444")
list.add("123")
// 输出原 List 的内容
for (int i = 0i <list.size()i++) {
System.out.printf("%2d -->%s%n", i, list.get(i))
}
System.out.println("=============")
// 输出查找重复元素的内容
int[] indexArray = reduplicateIndex(list, "123")
for (int index : indexArray) {
System.out.printf("%2d -->%s%n", index, list.get(index))
}
}
public static <T>int[] reduplicateIndex(List<T>list, T str) throws Exception{
List<T>tmp = new ArrayList<T>(list)
int[] index = new int[Collections.frequency(list, str)]
int start = tmp.indexOf(str)
int end = tmp.lastIndexOf(str)
int i = 0
if(start <0) {
throw new Exception("数组中不存在 " + str + " 元素!")
}
index[i] = start
while (start != end) {
index[++i] = end
tmp = tmp.subList(0, end)
end = tmp.lastIndexOf(str)
}
Arrays.sort(index)
return index
}
建立一个HashSet<string>, 遍历一次List<string>,把值插入HashSet<string>就可以了。HashSet会自动删除重复值。话说你一开始插入就用HashSet就没必要删除了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)