集合和数组的几个问题

  • 一、数组怎么转集合
  • 二、集合去重怎么做?
  • 三、删除对象集合里,某个属性为空的对象
  • 四、数据库查询数据如何按某一个字段去重

一、数组怎么转集合

 String [] strArr = {"张三","李四","王五","赵六"};List<String> list = Arrays.asList(strArr);//由于Arrays.ArrayList参数为可变长泛型,而基本类型是无法泛型化的,所以它把int[] array 数组当成了一个泛型对象,所以集合中最终只有一个元素array 。//不过我们可以定义一个新数组来接收ArrayList<String> strings = new ArrayList<>(list);strings.add("时七");System.out.println(strings);


注:集合转数组可用 list_name.toArray(T[ ] a)

二、集合去重怎么做?

1、利用HashSet不能添加重复数据的特性,应为HashSet是无序的,所以只能将其作为判断条件,需要新建一个List集合去接收
数据:“张三”, “张三”,“李四”,“王五”,“赵六”

 Set<String> set = new HashSet<>();List<String> list01 = new ArrayList<>();for (String string : strings) {if(set.add(string)){list01.add(string);}}System.out.println(list01.toString());


2、LinkedHashSet,他同时拥有set集合不重复的特点和可预测的迭代顺序

 LinkedHashSet<String> hashSet = new LinkedHashSet<>();hashSet.addAll(strings);System.out.println(hashSet.toString());


3、利用数组的contains方法,如果不包含就添加到新数组

 ArrayList<String> list01 = new ArrayList<>();for (String string : strings) {if(!list01.contains(string)){list01.add(string);}}System.out.println(list01);

三、删除对象集合里,某个属性为空的对象

1、使用Iterator迭代器

     List<Post> list = postService.list();Post post = new Post();list.add(post);Iterator<Post> iterator = list.iterator();while (iterator.hasNext()){Post next = iterator.next();//判断对应属性是否为空if(StringUtils.isEmpty(next.getPostName())){//相应对象就已经在原集合中被删除了iterator.remove();}}System.out.println("list.size:" + list.size());

2、使用java8新特性

     List<Post> list = postService.list();Post post = new Post();list.add(post);list.removeIf(filter->StringUtils.isEmpty(filter.getPostName()));System.out.println("list.size:" + list.size());

四、数据库查询数据如何按某一个字段去重

 delete from [table_name] where id in (select id from [table_name]  where [字段] in (select [字段] from [table_name] group by [字段] having count([字段])>1)  and [字段] not in (select min(id) from [table_name] group by [字段] having count([字段])>1))

数组转集合,集合去重, 删除对象List某个属性值为空的对象,MySql根据某一字段去重相关推荐

  1. js 清除对象里的属性值为空的属性

    function removeProperty(obj) {Object.keys(obj).forEach(item => {if (obj[item] === '' || obj[item] ...

  2. javascript 数组对象根据相同属性值{key:value}合并两个对象

    前言 js 数组对象的合并,方便自己后续使用与学习,废话少说,这段代码的功能就是根据某个相同的value值合并两个数组对象 比如:根据相同的hotelId来合并 一 , 数组对象根据相同属性值合并两个 ...

  3. java中判断对象中某个属性是否为空

    问题:java对象接受从数据库查出来的数据时,对对象的某一属性进行操作,在操作属性中存储的数据中不对进行检查,会出现空指针异常的情况. 问题再现:新建一个实体类 public class Studen ...

  4. Java:比较两个对象中全部属性值是否相等

    点击关注公众号,实用技术文章及时了解 来源:xiaoer.blog.csdn.net/article/details/85005295 例如下述Java类: import java.io.Serial ...

  5. 利用反射打印对象一般成员属性值

    为什么80%的码农都做不了架构师?>>>    利用反射打印对象一般成员属性值 public static void printVoOrDtoVal(Object obj){ Str ...

  6. 有属性的自定义注解,如何获取到post请求中RequestBody中对象的一个属性值?

    1,写两个自定义注解,一个作用于方法的,一个作用于字段的 作用于方法的自定义注解代码: package com.youku.nintendo.annotation;import enums.Permi ...

  7. java对象上有横线_对象bean间属性值复制:无视大小写和下划线_和横杠-

    1.简要说明:在java代码开发过程中,总会遇到实体类bean直接的属性复制问题,将一个bean中的值复制到另一个bean中,这时如果属性名是形同的,(仅仅有大小写或带下划线_或带横杠-)的区别,那就 ...

  8. java 获取对象属性值为空或者非空的属性名称

    目录 1. 获取对象属性值为空的属性名称 2. 复制对象非空属性值 1. 获取对象属性值为空的属性名称 /** * @Title: getNullPropertyNames* @Description ...

  9. jQuery 根据数组对象中的属性值删除当前对象

    var data = form.serializeArray(); //**表单提交一般不用这个** removeByValue(data, 'name', '__VIEWSTATE'); remov ...

最新文章

  1. 主机/服务器某端口被占用及解决办法
  2. matlab与python 语言区别总结(1)_matlab与python 语言区别总结(1)
  3. 用算法识别水流模式,AI探测到962起污水泄漏事件
  4. 荣耀X8碎屏2020-05-14
  5. java编程double相乘_浅谈Java double 相乘的结果偏差小问题
  6. Hamburger Steak
  7. 一叶知秋:基于“单目标域样本”的领域自适应方法
  8. c专家编程 读书笔记
  9. Unity面试题精选(3)
  10. php ajax实现上移,jquery实现标签上移、下移、置顶_jquery
  11. EntityFramework使用及优化
  12. Linux 循环与变量
  13. Java并发包提供了哪些并发工具类?
  14. linux 服务 优先级,设置Linux自启服务以及优先级
  15. QC七大手法之直方图详解
  16. 超简洁又强大的幻灯片JS、CSS代码,兼容性强
  17. CFAR检测MATLAB仿真
  18. win10键盘失灵一键修复方法
  19. Photoshop 渐变工具使用
  20. python ssologin_Python sso

热门文章

  1. Android显示长度单位相关:px、ppi、dp、dpi、sp、density
  2. 葫芦书笔记----采样
  3. 如何谷歌浏览器清除缓存
  4. 多线程数据交换工具Exchanger完全解析
  5. 蓝鲸CMDB更换域名
  6. 浏览器渲染html的流程,浏览器渲染的工作流程和图片加载与渲染规则
  7. cv2.THRESH_TOZERO作用是什么
  8. 关于OMV无法正常加载引导的解决办法参考
  9. 华为鸿蒙系统与安卓系统对比,华为鸿蒙系统与安卓系统对比分析,区别在哪里?网友:细节定成败!...
  10. 安利安利-向大家推荐一个超级牛的etcd管理工具-EtcdKeeperFyne