数组转集合,集合去重, 删除对象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)){
	         
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果MySQL中的字段是下划线命名法,而JavaBean的属性是驼峰式命名,可以使用以下代码将ResultSet换成Java对象: ```java public <T> List<T> resultSetToObjects(ResultSet rs, Class<T> clazz) throws SQLException, IllegalAccessException, InstantiationException { List<T> objects = new ArrayList<>(); ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); Field[] fields = clazz.getDeclaredFields(); Map<String, Field> fieldMap = new HashMap<>(fields.length); for (Field field : fields) { String name = field.getName(); fieldMap.put(name, field); } while (rs.next()) { T object = clazz.newInstance(); for (int i = 1; i <= columnCount; i++) { String columnName = metaData.getColumnName(i); String fieldName = convertToCamelCase(columnName); Field field = fieldMap.get(fieldName); if (field == null) { continue; } field.setAccessible(true); Object value = rs.getObject(i); field.set(object, value); } objects.add(object); } return objects; } private String convertToCamelCase(String columnName) { StringBuilder sb = new StringBuilder(); boolean nextUpperCase = false; for (int i = 0; i < columnName.length(); i++) { char ch = columnName.charAt(i); if (ch == '_') { nextUpperCase = true; } else { if (nextUpperCase) { sb.append(Character.toUpperCase(ch)); nextUpperCase = false; } else { sb.append(Character.toLowerCase(ch)); } } } return sb.toString(); } ``` 在上面的代码中,我们使用了ResultSetMetaData来获取ResultSet中的列数和列名,然后使用convertToCamelCase方法将列名换成JavaBean属性名。接着,我们使用反射获取JavaBean中的所有属性,并将它们存储到一个Map中,其中属性名作为Map的键。在遍历ResultSet时,我们将每一行数据都换成JavaBean对象,然后遍历ResultSet中的每一列,将列名换成JavaBean属性名,并使用反射将列赋给JavaBean对象属性。最后,将JavaBean对象添加到List中并返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值