去除list里面的重复数组的性能比较
2016-07-09 15:10
417 查看
我的个天哪,重新看了一下自己之前写的代码,简单的代码风格都没有,变量名不清楚,甚至变量之间都没有空格,代码质量及其不规范。。。。
常见的去除list里面的重复数组方式是一次遍历:
public static List<Student> getNewNamelist(List<Student> oldlist,
List<Student> newlist) {
int k = 0;// 记录比较次数
ArrayList<String> tempString = new ArrayList<String>();
for (Student i : oldlist) {
if (!newlist.contains(i)
&& tempString.contains(i.getAge()) == false) {
newlist.add(i);
tempString.add("" + i.getAge());
}
k++;
}
System.out.println("我比较了" + k + "次");
return newlist;
}鉴于list和set之间的区别,考虑重写对象的hashcode和equals方法,一次遍历赋值,避免了list的contains操作public static HashSet<Student> getNewNamelist(List<Student> oldlist) {
HashSet<Student> setResult = new HashSet<Student>();
for (Student student : oldlist) {
setResult.add(student);
}
//setResult.addAll(oldlist);
return setResult;
}嗯嗯,感觉富文本的样式好多了
常见的去除list里面的重复数组方式是一次遍历:
public static List<Student> getNewNamelist(List<Student> oldlist,
List<Student> newlist) {
int k = 0;// 记录比较次数
ArrayList<String> tempString = new ArrayList<String>();
for (Student i : oldlist) {
if (!newlist.contains(i)
&& tempString.contains(i.getAge()) == false) {
newlist.add(i);
tempString.add("" + i.getAge());
}
k++;
}
System.out.println("我比较了" + k + "次");
return newlist;
}鉴于list和set之间的区别,考虑重写对象的hashcode和equals方法,一次遍历赋值,避免了list的contains操作public static HashSet<Student> getNewNamelist(List<Student> oldlist) {
HashSet<Student> setResult = new HashSet<Student>();
for (Student student : oldlist) {
setResult.add(student);
}
//setResult.addAll(oldlist);
return setResult;
}嗯嗯,感觉富文本的样式好多了
相关文章推荐
- css3-loading效果
- 单调队列: Sliding Window
- 设计模式--策略模式
- LCD 常用的客观效果指标和测试方法
- 【训练题】二分图判定
- UE4中dynamic create component及ChildActorComponent未解析符号 问题
- typescript学习视频
- python 模拟ajax请求
- 杭电1018 BIG NUMBER
- 工具使用-Maven打包问题
- LCD 常用的客观效果指标和测试方法
- 牛人经验3(IC设计行业分类辨析)
- msm8916 lcd 相关调试点指导
- 人才济济的时代诚信才能脱颖而出
- android完美退出自身进程的方法
- msm8916 lcd 相关调试点指导
- 第27章 结构型模式大PK
- iOS UIScrollView 滚动到当前展示的视图居中展示
- 解决office2010安装过程出错的问题
- 网络流初步-最大流