精华内容
下载资源
问答
  • C# 修改list所有对象中的某字段

    万次阅读 2018-10-28 16:00:20
    C# 修改list所有对象中的某字段 最简单的方法就是用ForEach List<MyObject> myObject = new List<MyObject>(); myObject.ForEach(w =&...

    C# 修改list所有对象中的某字段

    语法糖:ForEach(批量修改时候方便)
    最简单的方法就是用ForEach

     List<MyObject> myObject = new List<MyObject>();
     myObject.ForEach(w => w.MyBool = true);
    

    上面代码就是吧我们myObject 对象集合中所有的MyBool都更改为true

    案例:
    环境 dotnet Core 2.1

    案例下载地址:https://download.csdn.net/download/qq_36051316/10749269
    核心代码放在其他环境上一样通用

    using System;
    using System.Collections.Generic;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                //声明一个对象集合
                List<MyObject> myObject = new List<MyObject>();
                //循环添加对象到集合内
                for (int i = 1; i < 20; i++)
                {
                    MyObject woei = new MyObject
                    {
                        MyInt = i,
                        MyBool=false
                    };
                    myObject.Add(woei);
    
                }
                //开始输出第一次
                Console.WriteLine("开始输出第一次:");
                //循环输出发现我们的数据中MyBool全是false
                foreach (var item in myObject)
                {
                    Console.WriteLine($"int:{item.MyInt},bool:{item.MyBool}");
                }
                //通过更改后,改成true
                myObject.ForEach(w => w.MyBool = true);
                Console.WriteLine("开始输出第二次:");
                //第二次输出:循环输出发现我们的数据中MyBool全是true
                foreach (var item in myObject)
                {
                    Console.WriteLine($"int:{item.MyInt},bool:{item.MyBool}");
                }
    
            }
        }
    
        public class MyObject
        {
            public int MyInt { get; set; }
            public bool MyBool { get; set; }
        } 
    }
    
    
    展开全文
  • 排序,带参数类型 list.sort((String s1, String s2) -> s1.compareTo(s2)); list.sort(( LibraryDO lib1, LibraryDO lib2) -> lib2.getId().compareTo(lib2.getId())); // 使用默认方法排序 Collections.sort...
    // 1.排序,带参数类型
    list.sort((String s1, String s2) -> s1.compareTo(s2));
    list.sort(( LibraryDO lib1, LibraryDO lib2) -> lib2.getId().compareTo(lib2.getId()));
    // 使用默认方法排序
    Collections.sort(list, Comparator.comparing(LibraryDO::getId)); //升序
    Collections.reverse(list); // 倒序排列
    //随机打乱顺序
    Collections.shuffle(list);
    //更多排序
    //默认ASC排序)
    List<LibraryDO> collect = users.stream().sorted(Comparator.comparing(LibraryDO::getId)).collect(Collectors.toList());
    //DESC排序)
    List<LibraryDO> collect = users.stream().sorted(Comparator.comparing(LibraryDO::getId).reversed()).collect(Collectors.toList());
    
    // 2.数组去重
    List<String> collect = list.stream().distinct().collect(Collectors.toList());
    // 数组去重转换为字符串
    String joining = list.stream().distinct().collect(Collectors.joining(",")); 
    // 根据对象属性去重
    List<LibraryDO> lib = list.stream().collect(Collectors.collectingAndThen(
    					Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(LibraryDO::getId))), ArrayList<LibraryDO>::new));
    
    // 4.获取对象某一属性返回list
    List<String> collect= list.stream().map(LibraryDO::getId).collect(Collectors.toList());
    // 获取对象某一属性返回数组
    Integer[] array = list.stream().map(LibraryDO::getId).collect(Collectors.toList()).stream().toArray(Integer[]::new);
    // 获取对象某一属性返回数组过滤非空
    Integer[] array = list.stream().map(LibraryDO::getId).filter(x -> x !=null).collect(Collectors.toList()).stream().toArray(Integer[]::new);
    //5.修改对象属性值
    List<LibraryDO> lib = list.stream().map(p -> {p.setId(p.getId() + 1);return p;}).collect(Collectors.toList())
    /**
     * LibraryDO 对象
     */
    public class LibraryDO implements Serializable {
    	//ID
    	private Integer id;
    	//图书馆名称
    	private String libName;
    	//网址
    	private String libUrl;
    }
    
    
    
    

    排序
    https://www.cnblogs.com/woyaobianfei/p/9187127.htm

    展开全文
  • 1.许多时候我们得到的List并不是我们最终要输出的,所以我们还需要进行排序,下面自己写代码进行排序 分类一: int属性进行排序 ... //创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中  S...

    1.许多时候我们得到的List并不是我们最终要输出的,所以我们还需要进行排序,下面自己写代码进行排序

    分类一: int属性进行排序

      代码: 

    List<Student> list = new ArrayList<Student>();
            
            //创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中
            Student s1 = new Student();
            s1.setAge(20);
            s1.setName("P02C004194");
            Student s2 = new Student();
            s2.setAge(19);
            s2.setName("P02C003191");
            Student s3 = new Student();
            s3.setAge(21);
            s3.setName("P02C002190");
            list.add(s1);
            list.add(s2);
            list.add(s3);
            
            System.out.println("排序前:"+list);
             Collections.sort(list, new Comparator<Student>(){
     
                /*
                 * int compare(Student o1, Student o2) 返回一个基本类型的整型,
                 * 返回负数表示:o1 小于o2,
                 * 返回0 表示:o1和o2相等,
                 * 返回正数表示:o1大于o2。
                 */
                public int compare(Student o1, Student o2) {
                
                    //按照学生的年龄进行升序排列
                   if(o1.getAge() > o2.getAge()){
                      return 1;
                   }
                    if(o1.getAge() == o2.getAge()){
                        return 0;
                    }
                    return -1;

                }
            }); 
            System.out.println("排序后:"+list);
        }
    }
    class Student{
        
        private int age;
        
        private String name;
     
        public int getAge() {
            return age;
        }
     
        public void setAge(int age) {
            this.age = age;
        }
        
        
        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "Student [age=" + age + ", name=" + name + "]";
        }
        
    }

     

     

    二、按照String类型进行排序:

       其余都不变只是排序方法的修改,    

    Collections.sort(list, new Comparator<Student>(){
                public int compare(Student o1, Student o2) {
                    //按照学生的姓名进行升序排列
                    if(o1.getName().compareTo(o2.getName())==0){
                        return 1;
                    }else{
                        return o1.getName().compareTo(o2.getName());
                    }    }
            }); 

      按照降序排序:

    Collections.sort(list, new Comparator<Student>(){
                public int compare(Student o1, Student o2) {
                    //按照学生的姓名进行降序排列
                    if(o1.getName().compareTo(o2.getName())==0){
                        return 1;
                    }else{
                        return o2.getName().compareTo(o1.getName());
                    }    }
            }); 

     

     

    展开全文
  • 通过反射修改对象属性

    千次阅读 2020-06-29 11:12:59
    public static void main(String[] args) throws Exception {... * 通过反射调取方法修改参数,应用场景比较多 */ //获取反射对象 Class<?> name = Class.forName(str); //获取实例,因为newInstance方法得到
    public static void main(String[] args) throws Exception  {
        String str="reject.Person";
        try {
            /**
             * 通过反射调取方法修改参数,应用场景比较多
             */
            //获取反射对象
            Class<?> name = Class.forName(str);
            //获取实例,因为newInstance方法得到的是object类型的,所以需要强转
            Person instance = (Person) name.newInstance();
            //instance.setName("高淇");
            //通过反射对象获取一般方法
            Method method = name.getMethod("setName", String.class);
            //利用反射中的invoke方法激活通过反射调取的方法,里面的参数是实例对象和方法参数
            method.invoke(instance, "高淇");
            System.out.println(instance.getName());
            /**
             * 通过反射调取属性,修改属性参数。
             */
            //通过反射获取反射对象
            Class<?> name1 = Class.forName(str);
            //通过反射获取某个声明的属性
            Field declaredField = name1.getDeclaredField("name");
            //一般属性私有化,通过setAccessible方法,可以免去安全访问环节,对象可以直接访问。
            declaredField.setAccessible(true);
            //通过set方法,修改属性,里面的参数是实例对象和修改后的参数。
            declaredField.set(instance, "gaoqi");
            System.out.println(instance.getName());
    
    
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    
    

    案例

    //将JsonArry转换为list
                     List<UserMFlowDetail> list=JSONObject.parseArray(jsonArray.toString(),UserMFlowDetail.class);
                     WaterUser waterUser=waterUserMag.getObjectById(dbUserMFlow.getPeriod());
                     Class<?> name = Class.forName("com.centit.njjs.yshgl.po.WaterUser");
                     list.forEach(item->{
                         try {
                             Field declaredField = name.getDeclaredField(item.getModifiedField());
                             declaredField.setAccessible(true);
                             if("chargeType".equals(item.getModifiedField())){//判断list集合下遍历对象的属性:是否是chargeType
                                 declaredField.set(waterUser, "2");
                             }else{
                                 declaredField.set(waterUser, item.getNewCon());
                             }
                         } catch (NoSuchFieldException e) {
                         //NoSuchFieldException错误是由于没有对应字段造成的,或者当属性为私有时获取Field用的方法不是getDeclaredField
                             e.printStackTrace();
                         } catch (IllegalAccessException e) {
                             e.printStackTrace();
                         }
                         waterUserMag.mergeObject(waterUser);//保存对象
                     });
    
    展开全文
  • java8修改list集合元素的属性

    万次阅读 2019-12-11 10:17:13
    java8修改list集合元素的属性,超简单 解决方法: question.getRowOptions()是List集合,现在遍历修改元素的setOptId值 question.getRowOptions().forEach(http://www.yayihouse.com/yayishuwu/chapter/2325); ...
  • for循环一个list,元素赋值给另一个对象,修改另一个对象,竟然可以修改list
  • 1.设置state对象 state={ code:{ total:'', 1st:'', 2nd:'', 3rd:'', thd:‘’ }, } ...2 修改state对象 SetCode=(e)=>{ let val=e.target.value; let data = Object.as...
  • UserBO:复杂对象,其中一个属性List&lt;AddressBO&gt;或者Map&lt;AddressBO&gt; AddressBO:其中一个属性是SubAddressBO SubAddressBO:包含目标属性addrId,且是string类型,查找addrId的值 ...
  • java list按照元素对象的多个字段属性进行排序
  • // 这里我只判断类型是String 和List的, 具体可根据对象属性类型去添加判断 if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名 Method m = dto.getClass()....
  • IList类型的数据IList&lt;Student&gt; StudentList;StudentList.ToList().Foreach...//将StudentList中所有记录的“Name”字段有“欧阳”两个字的替换成“OUYANG” StudentList.ToList().Foreach(s=&...
  • 专栏自述:随着这几年机器学习火爆,楼主写了Java好多年,python其实也会写,但是缺乏系统性梳理,所以搞一个python栏目,系统性梳理的同时也把python的知识做... 7天入门Python 3 — Python对象属性及核心数据类...
  • 1,创建一个pojo,靠属性String 传输前端的json.Stringfy,将对象转换为字符串传输,后端在解析json; 2,用ajax 传输 $.ajax({ url:"url", type:"POST", data:json.stringfy(data), contentType:"ap...
  • springMVC复杂嵌套对象List等集合类型数据绑定 作者: Michael 日期: 2013 年 3 月 5 日 发表评论 (0)查看评论 目录: 概述实现方法及测试 [一]、概述 继前面一篇 springMVC 页面多个对象的数据...
  • private static Logger logger= LoggerFactory.getLogger(ObjectFieldUtil.class); /** ... * @return 修改对象属性值名称集合 */ public static List<String> getChangeList(Object o.
  • * ③.list元素对象属性类型可以是数字(byte、short、int、long、float、double等,包括正数、负数、0)、字符串(char、String)、日期(java.util.Date) * --->对于数字:统一转换为固定长度的字符串解决,比如数字3...
  • java 对象中集合属性及复制

    千次阅读 2018-12-21 12:53:16
    java 对象中集合属性及复制 本文我们介绍集合属性的复制场景及多种实现方式。 对象中集合属性 实际应用中对象中的集合属性很常见,表达一对多的关系。如用户有多个地址,订单包括多个产品等。一般我们需要定义集合...
  • 问题描述:我打算选中列表的字段,...在修改这个属性后却没有看到列表中选字段的变化。ListBox取值绑定存储Sutdent类的对象。之所以用ObservableCollection是因为:(出自《深入浅出WPF》)ObservableCollectio...
  • 自定义 UserControl 包含封装了 List 类型字段的属性,编译后造成引用了该 UserControl 的窗体设计器无法显示! public partial class UserControl1 : UserControl { private List fac
  • Java循环遍历直接修改遍历对象

    千次阅读 2019-05-17 13:32:00
    Java 循环遍历直接修改遍历对象如下,会报异常: for (ShopBaseInfo sp: sourceList) { if(sp.getId()==5){ sourceList.remove(sp); } } Exception in thread "main" java.util.Conc...
  • JS修改class属性

    万次阅读 2019-05-13 00:43:11
    DOM里的每个节点上都有一个classList对象,既可以用里面的方法新增、删除、修改节点上的CSS类。也可以用它来判断某个节点是否被赋予了某个CSS类。 add(类名) 添加类名 remove(类名) 删除类名 replace(替换谁,替换...
  • 1、改变list中某个元素的值 public class tb_SensorRecordModel { public int ID { get; set; } public decimal Value1 { get; set; } } List<tb_SensorRecordModel> list = new...
  • mybatis的mapper接口方法的参数是一个普通的java对象,但是java对象中包含有list类型属性,例如我的查询参数模型是 CompanyRecordQueryModel .java public class CompanyRecordQueryModel extends ...
  • Java反射获取对象中特定属性的值

    千次阅读 2018-06-29 14:59:29
    Java反射获取对象中特定属性的值问题一:如何找到某个对象中特定属性的值?public static Object getFieldValueByObject (Object object , String targetFieldName) throws Exception { // 获取该对象的Class ...
  • 其中有一个就是需要返回一个实体类的信息,该实体类带有List属性,返回的结果类似于下图。 我的解决办法是将查询分成两步,第一步是查询到对应的表的实体类结果,第二部查询到一个List集合然后将这个集合通过set...
  • Spring标签提交List对象

    千次阅读 2017-01-14 21:23:05
    一个页面提交的是多个list的情况,这里总结一下。 从List对象的提交、显示来总结。 1.使用来提交List对象。 先说一下思路:
  • 作为一种面向对象的编程语言,“类”在python的应用非常普遍。有时候,我们需要将list作为某个类的属性。进一步的,在有些场景下,我们希望能够对某个list属性进行初始化。如果需要进行这步操作,那一定要注意了。...
  • 在利用递归遍历获取Java复杂...且指定了属性所在类的类名、属性类型、属性名(当然也可以不指定这些,因为我是业务需要)。另外例子对属性为List或者Map的属性的遍历做了一定改动。 现在贴代码如下(如果各位同仁发...
  • //可以用final来修饰形参,本例形参是一个对象的引用 public void change(final Person p){ p.name="职工那样"; //对象不能被改变 //p=new Person(); } public static void main(String[] ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 314,601
精华内容 125,840
关键字:

修改list中对象的属性类型