java 项目 , List<实体>,需要获取list中的重复数据

java 项目 , List<实体>,需要获取list中的重复数据,第1张

java项目中获取list重复数据可以使用list的reduplicateIndex方法,实例如下:

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就没必要删除了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10801811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存