Vector 和 ArrayList去重
来源:互联网 发布:淘宝重复铺货怎么办 编辑:程序博客网 时间:2024/05/01 20:56
package com.darren.test.collection;import java.util.HashSet;import java.util.Set;import java.util.Vector;public class VectorTest { public static void main(String[] args) { Vector<String>vector = new Vector<String>(); vector.add("aaa"); vector.add("bbb"); vector.add("aaa"); vector.add("ccc"); System.out.println("原始的数据内容"); print(vector); // 如何去除重复的值,请看下面的两个方法 System.out.println("遍历去重结果:"); print(removeDuplicateValue(vector)); System.out.println("HashSet去重结果:"); print(removeDuplicateValue1(vector)); } // 方法1,使用遍历的方式去除重复值 private static Vector<String> removeDuplicateValue(Vector<String>source) { Vector<String>newVector = new Vector<String>(); int size = source.size(); for (int i = 0; i < size; i++) { Stringvalue = source.get(i); if (!newVector.contains(value)) { newVector.add(value); } } return newVector; } // 方法2,使用HashSet去重的特性来完成要求 private static Vector<String> removeDuplicateValue1(Vector<String>source) { Set<String>set = new HashSet<String>(source); Vector<String>newVector = new Vector<String>(set); return newVector; } private static void print(Vector<String> source){ int size = source.size(); for (int i = 0; i < size; i++) { System.out.println(source.get(i)); } }}
运行结果:
原始的数据内容
aaa
bbb
aaa
ccc
遍历去重结果:
aaa
bbb
ccc
HashSet去重结果:
aaa
ccc
bbb
ArrayList 和Vector的方式一样,不再写重复代码
但是此时细心的同学发现这两种去重方法结果不一致,这是因为HashSet是无序的,或者说它不能保持输出的顺序与进入的顺序是一致的,我们可以用以下方法来解决这个问题:
private static Vector<String> removeDuplicateValue2(Vector<String>source) { Set<String>set = newLinkedHashSet<String>(source); Vector<String>newVector = new Vector<String>(set); return newVector; }
把HashSet换成LinkedHaseSet就可以了,LinkedHaseSet可以保持输出顺序与进入顺序一致。
0 0
- Vector 和 ArrayList去重
- vector的排序和去重
- 为ArrayList去重
- ArrayList去重
- ArrayList练习 ,去重
- c# ArrayList去重
- vector 去重
- vector去重--unique
- Vector去重
- c++vector去重
- vector 去重模板
- vector去重方法
- 使用vector 和 algorithm排序和去重
- 将一个Arraylist去重
- 【Java】为ArrayList去重
- vb.net Arraylist去重
- 【Java】为ArrayList去重
- Vector::去重、置乱
- Bottle实例之—POST、GET再解
- 纪念
- HDU 1846 Brave Game (简单博弈)
- HDU - 5025 Saving Tang Monk
- 今日第一题 uva11384
- Vector 和 ArrayList去重
- cocos2d-X之精灵角色(CCSprite)
- Spring中AOP
- hdu 5023 线段树
- http://baike.baidu.com/view/79315.htm?fr=aladdin#2 求最大公倍数
- 网络赛 Saving Tang Monk(HDU 5025)
- 同步和异步
- 如何阅读文献
- 动态规划(dynamic program)&& 最长公共子序列(LCS)