当前位置: 首页 > news >正文

网站建设实训意义可以免费推广的平台

网站建设实训意义,可以免费推广的平台,青海公司网站建设哪家好,做盗版电影网站后果List集合去重的方式方式一:利用TreeSet集合特性排序去重(有序)方式二:利用HashSet的特性去重(无序)方式三:利用LinkedHashSet去重(有序)方式四:迭代器去重&am…

List集合去重的方式

  • 方式一:利用TreeSet集合特性排序+去重(有序)
  • 方式二:利用HashSet的特性去重(无序)
  • 方式三:利用LinkedHashSet去重(有序)
  • 方式四:迭代器去重(无序)
  • 方式五:使用list.contains()对全部元素进行判断(有序)
  • 方式六:使用Java8特性(Stream去重)去重(有序)
  • 方式七:使用list自身方法remove()–>不推荐
  • 总结:

方式一:利用TreeSet集合特性排序+去重(有序)

TreeSet可以将字符串类型的数据按照字典顺序进行排序,首字母相同则看第二位

 public static void main(String[] args) {// 一.利用TreeSet集合特性排序+去重List<String> list=new LinkedList<>();list.add("22");list.add("11");list.add("33");list.add("66");list.add("22");list.forEach(item->{System.out.println("去重前的集合:"+item);});System.out.println("-----------------");List<String> result=new LinkedList<>(new TreeSet<>(list));System.out.println("去重后的集合:"+result);}

去重前的集合元素:22
去重前的集合元素:11
去重前的集合元素:33
去重前的集合元素:66
去重前的集合元素:22


去重后的集合:[11, 22, 33, 66]

方式二:利用HashSet的特性去重(无序)

由于Set的特性是无序且不可重复,我们利用这个特性进行两步操作:

  1. 把list放入set中
  2. 把set还回list里
public static void main(String[] args) {// 利用set的特性去重List<String> list=new LinkedList<>();list.add("22");list.add("11");list.add("33");list.add("66");list.add("22");Iterator iter=list.iterator();while(iter.hasNext()){System.out.println("去重前的集合元素:"+iter.next());}System.out.println("-----------------");// result集合存放最终的结果List<String> result=new LinkedList<>();if (list.size()>0&&list!=null){// 新建HashSet集合,将list放入Set<String> set=new HashSet<>();set.addAll(list);// 将去重后的set集合放入结果集合result中result.addAll(set);}System.out.println("去重后的集合:"+result);}

去重前的集合元素:22
去重前的集合元素:11
去重前的集合元素:33
去重前的集合元素:66
去重前的集合元素:22


去重后的集合:[22, 11, 33, 66]

方式三:利用LinkedHashSet去重(有序)

LinkedHashSet虽然可以去重,但是根据它的特性,它不能对数据进行排序,只能维持原来插入时的秩序

  public static void main(String[] args) {// 利用LinkedHashSet集合去重List<String> list=new LinkedList<>();list.add("22");list.add("11");list.add("33");list.add("66");list.add("22");for (int i=0;i<list.size();i++){System.out.println("去重前的集合元素:"+list.get(i));}System.out.println("-----------------");List<String> result=new LinkedList<>(new LinkedHashSet<String>(list));System.out.println("去重后的集合:"+result);}

去重前的集合元素:22
去重前的集合元素:11
去重前的集合元素:33
去重前的集合元素:66
去重前的集合元素:22


去重后的集合:[22, 11, 33, 66]

方式四:迭代器去重(无序)

此方法得到的新集合是无序的,也就是新集合的排列顺序和原集合不一致

public static void main(String[] args) {// 二.迭代器去重(无序)List<String> list=new LinkedList<>();list.add("22");list.add("11");list.add("33");list.add("66");list.add("22");for (String item:list){System.out.println("去重前的集合元素:"+item);}System.out.println("-----------------");Iterator<String> iterator=list.iterator();while (iterator.hasNext()){String next= iterator.next();// 如果存在两个相同的值if (list.indexOf(next)!=list.lastIndexOf(next)){//移除最后那个相同的值iterator.remove();}}System.out.println("去重后的集合:"+list);}

去重前的集合元素:22
去重前的集合元素:11
去重前的集合元素:33
去重前的集合元素:66
去重前的集合元素:22


去重后的集合:[11, 33, 66, 22]

方式五:使用list.contains()对全部元素进行判断(有序)

  • String类型会判断字符串里是否有相同的部分
  • List里则会判断是否有相同的元素
  • 我们可以用list.contains()的方法进行判断,然后将其添加到新的list当中,元素的顺序不发生改变
 public static void main(String[] args) {// 使用list.contains()对全部元素进行判断System.out.println("----------");System.out.println("探究contains()方法");String s1="aaa";String s2="aa";System.out.println(s1.contains(s2));List<String> list0=new LinkedList<>();list0.add("aaa");System.out.println(list0.contains("aa"));System.out.println("----------");List<String> list=new LinkedList<>();list.add("22");list.add("11");list.add("33");list.add("66");list.add("22");System.out.println("去重前的集合:"+list);System.out.println("-----------------");List<String> result=new LinkedList<>();for (String str:list){if (!result.contains(str)){result.add(str);}}System.out.println("去重后的集合:"+result);}

探究contains()方法
true
false


去重前的集合:[22, 11, 33, 66, 22]
去重后的集合:[22, 11, 33, 66]

方式六:使用Java8特性(Stream去重)去重(有序)

把list集合->Stream流,然后对流用distinct()去重,再用collect()收集

public static void main(String[] args) {// 使用Java8特性去重List<String> list=new LinkedList<>();list.add("22");list.add("11");list.add("33");list.add("66");list.add("22");System.out.println("去重前的集合:"+list);System.out.println("-----------------");List<String> result=new LinkedList<>();result=list.stream().distinct().collect(Collectors.toList());System.out.println("去重后的集合:"+result);}

去重前的集合:[22, 11, 33, 66, 22]


去重后的结集合:[22, 11, 33, 66]

方式七:使用list自身方法remove()–>不推荐

  • 如果你的list里存的比较复杂,是一个List<Map<String,Object>>格式的情况,最无奈之举就是这种方法
  • 主要操作是将同一个list用两层for循环配合.equals()方法,有相同的就用remove()方法剔除掉,然后得到一个没有重复数据的list
  public static List<Map<String,Object>> distinct(List<Map<String,Object>> list){if (list!=null && list.size()>0){for (int i=0;i<list.size();i++){for (int j=list.size()-1;j>i;j--){// 这里是对象的比较,如果去重条件不一样,修改这里即可if (list.get(j).equals(list.get(i))){list.remove(j);}}}}return list;}

总结:

介绍集合去重的方法中实现最简洁,且去重之后的顺序能和原集合保持一致的实现方法,只有两种:LinkedHashSet 去重和 Stream 去重,其中后一种去重方法无需借助新集合,是我们优先考虑的去重方法

http://www.yidumall.com/news/37849.html

相关文章:

  • 网站建设和电商区别俄罗斯搜索引擎入口
  • 机械设计软件solidworksseo推广招聘
  • 内衣网站建设详细方案广告联盟看广告赚钱
  • 龙华网站建设招聘短视频关键词优化
  • 大连网站建设酷网凡科建站怎么导出网页
  • 江苏又一地出现疫情宁德seo培训
  • 全国做的好的mba网站软件培训机构
  • 网站建设公司浙江什么叫做优化
  • 帮站seo搜索app下载安装
  • mac可以用wordpress杭州seo
  • 最好的网站建设团队悟空建站seo服务
  • 宁波网站建设推广网络营销的营销理念
  • 网站开发职业要求郑州网站优化渠道
  • 游戏网站模板源码百度推广怎么优化
  • 网站ftp模板怎么建网站免费的
  • 深圳画册设计企业seo推广软件排行榜前十名
  • 个人网站名称要求今日新闻头条官网
  • 网站定位授权开启权限怎么做百度问答平台入口
  • 有哪些做设计交易网站有哪些内容内容营销成功案例
  • 非洲外贸平台有哪些优化大师班级优化大师
  • 手机网站加速器网页制作源代码
  • 六盘水住房和城乡建设部网站营销软文代写
  • seo优化官网搜索引擎优化培训
  • 易语言网站做软件下载网站关键词搜索排名
  • 自己有个服务器 怎样做网站郑州seo
  • 网站开发建设交印花税吗中国十大网络营销平台
  • 做网站论坛赚钱seo免费入门教程
  • 销售易优化网站排名方法教程
  • 网站设计步骤的教学设计nba最新比赛直播
  • 网站开发美学免费建站的网站有哪些