数组转集合,集合去重, 删除对象List某个属性值为空的对象,MySql根据某一字段去重
集合和数组的几个问题
- 一、数组怎么转集合
- 二、集合去重怎么做?
- 三、删除对象集合里,某个属性为空的对象
- 四、数据库查询数据如何按某一个字段去重
一、数组怎么转集合
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根据某一字段去重相关推荐
- js 清除对象里的属性值为空的属性
function removeProperty(obj) {Object.keys(obj).forEach(item => {if (obj[item] === '' || obj[item] ...
- javascript 数组对象根据相同属性值{key:value}合并两个对象
前言 js 数组对象的合并,方便自己后续使用与学习,废话少说,这段代码的功能就是根据某个相同的value值合并两个数组对象 比如:根据相同的hotelId来合并 一 , 数组对象根据相同属性值合并两个 ...
- java中判断对象中某个属性是否为空
问题:java对象接受从数据库查出来的数据时,对对象的某一属性进行操作,在操作属性中存储的数据中不对进行检查,会出现空指针异常的情况. 问题再现:新建一个实体类 public class Studen ...
- Java:比较两个对象中全部属性值是否相等
点击关注公众号,实用技术文章及时了解 来源:xiaoer.blog.csdn.net/article/details/85005295 例如下述Java类: import java.io.Serial ...
- 利用反射打印对象一般成员属性值
为什么80%的码农都做不了架构师?>>> 利用反射打印对象一般成员属性值 public static void printVoOrDtoVal(Object obj){ Str ...
- 有属性的自定义注解,如何获取到post请求中RequestBody中对象的一个属性值?
1,写两个自定义注解,一个作用于方法的,一个作用于字段的 作用于方法的自定义注解代码: package com.youku.nintendo.annotation;import enums.Permi ...
- java对象上有横线_对象bean间属性值复制:无视大小写和下划线_和横杠-
1.简要说明:在java代码开发过程中,总会遇到实体类bean直接的属性复制问题,将一个bean中的值复制到另一个bean中,这时如果属性名是形同的,(仅仅有大小写或带下划线_或带横杠-)的区别,那就 ...
- java 获取对象属性值为空或者非空的属性名称
目录 1. 获取对象属性值为空的属性名称 2. 复制对象非空属性值 1. 获取对象属性值为空的属性名称 /** * @Title: getNullPropertyNames* @Description ...
- jQuery 根据数组对象中的属性值删除当前对象
var data = form.serializeArray(); //**表单提交一般不用这个** removeByValue(data, 'name', '__VIEWSTATE'); remov ...
最新文章
- 主机/服务器某端口被占用及解决办法
- matlab与python 语言区别总结(1)_matlab与python 语言区别总结(1)
- 用算法识别水流模式,AI探测到962起污水泄漏事件
- 荣耀X8碎屏2020-05-14
- java编程double相乘_浅谈Java double 相乘的结果偏差小问题
- Hamburger Steak
- 一叶知秋:基于“单目标域样本”的领域自适应方法
- c专家编程 读书笔记
- Unity面试题精选(3)
- php ajax实现上移,jquery实现标签上移、下移、置顶_jquery
- EntityFramework使用及优化
- Linux 循环与变量
- Java并发包提供了哪些并发工具类?
- linux 服务 优先级,设置Linux自启服务以及优先级
- QC七大手法之直方图详解
- 超简洁又强大的幻灯片JS、CSS代码,兼容性强
- CFAR检测MATLAB仿真
- win10键盘失灵一键修复方法
- Photoshop 渐变工具使用
- python ssologin_Python sso
热门文章
- Android显示长度单位相关:px、ppi、dp、dpi、sp、density
- 葫芦书笔记----采样
- 如何谷歌浏览器清除缓存
- 多线程数据交换工具Exchanger完全解析
- 蓝鲸CMDB更换域名
- 浏览器渲染html的流程,浏览器渲染的工作流程和图片加载与渲染规则
- cv2.THRESH_TOZERO作用是什么
- 关于OMV无法正常加载引导的解决办法参考
- 华为鸿蒙系统与安卓系统对比,华为鸿蒙系统与安卓系统对比分析,区别在哪里?网友:细节定成败!...
- 安利安利-向大家推荐一个超级牛的etcd管理工具-EtcdKeeperFyne