闲来无事写个数组去重的方法,如果有更好,更简洁的方法请大家不要忘了留言给我哦!
public static void main(String[] args) {
String[] arr = {"jslkdfj", "sds", "ss", "dd", "nn", "mm", "nn", "mm"};
//数组去重:
// 方案一:(将数据放入到新的List里面)
List<String> list = Lists.newArrayList();
for (int i = 0; i < arr.length; i++) {
if (!list.contains(arr[i])) {
list.add(arr[i]);
}
}
list.stream().forEach(System.out::println);
// 方案二:(利用java8新特性去重)
Arrays.asList(arr).stream().distinct().forEach(System.out::println);
// 方案三:(利用Set集合或是TreeSet集合)
Set<String> set = Sets.newHashSet(Arrays.asList(arr));
Iterator<String> it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
// 方案四:(利用Map集合中的keySet、entrySet方法)
Map<String, Object> map = Maps.newHashMap();
for (String s : arr) {
map.put(s, s);
}
// for (String key : map.keySet()) {
// System.out.println(key);
// }
for (Map.Entry<String, Object> m : map.entrySet()) {
System.out.println(m.getKey());
}
//方案五:(利用两次for循环,一个正循环,一个倒循环)
List<String> listStr = Lists.newArrayList(arr);
for (int i = 0; i <= listStr.size() - 1; i++) {
for (int j = listStr.size() - 1; j > i; j--) {
if (listStr.get(i).equals(listStr.get(j))) {
listStr.remove(j);
}
}
}
listStr.forEach(System.out::println);
}
java数组去重
最新推荐文章于 2024-07-22 15:59:43 发布