lambdaj 集合操作工具

依赖:
      <dependency>
           <groupId>com.googlecode.lambdaj</groupId>
           <artifactId>lambdaj</artifactId>
           <version>2.3.3</version>
       </dependency>

计算平均值:

    @Test
    public void testAvg() {
        ImmutableList<Integer> list = ImmutableList.of(1,2,3,4,10);
        Number avg = Lambda.avg(list);
        System.out.println(avg);

    }

统计每个元素出现的次数:

    @Test
    public void testCount() {
        ImmutableList<Integer> list = ImmutableList.of(1,2,3,4,10,1,2,3,4);
        Map<Object, Integer> count = Lambda.count(list);
        for(Map.Entry<Object,Integer> entry : count.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }

sort排序:

内部使用的 Collections.sort() 方法进行排序的。

    @Test
    public void testSort() {
        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person(1051,"Tom","123"));
        list.add(new Person(1002,"Jack","123"));
        list.add(new Person(1021,"Ros","123"));
        list.add(new Person(1041,"Pink","123"));
        list.add(new Person(1071,"Jerrt","123"));

        List<Person> sortList = Lambda.sort(list, Lambda.on(Person.class).getId());
        for (Person person : sortList) {
            System.out.println(person);
        }
    }

joinFrom 连接元素

    @Test
    public void testJoinForm() {
        String idStr = Lambda.joinFrom(list).getName();
        String pwdStr = Lambda.joinFrom(list,"-").getPassword();

        System.out.println(idStr);
        System.out.println(pwdStr);
    }

selectMax,selectMin(最大/最小 对象)

    /**
     * 按照某个属性值 最大/最小 的对象
     */
    @Test
    public void testSelectMax() {
        //获取年龄最大的 person 对象
        Person maxIdPer = Lambda.selectMax(list, Lambda.on(Person.class).getId());

        //
        Person minIdPer = Lambda.selectMin(list, Lambda.on(Person.class).getId());

        System.out.println(maxIdPer);
        System.out.println(minIdPer);

    }

获取的是某个属性值最大或最小的对象实例

max、min 获取最大\最小的属性值

    @Test
    public void testMinMax() {
        int maxId = Lambda.max(list,Lambda.on(Person.class).getId());

        String minName = Lambda.min(list,Lambda.on(Person.class).getName());

        System.out.println(maxId);
        System.out.println(minName);
    }

获取的是集合中某个最大或最小的属性值

对集合中某一个属性进行求和运算:

    @Test
    public void testSum() {
        int sumId = Lambda.sum(list,Lambda.on(Person.class).getId());
        int sumFromId = Lambda.sumFrom(list).getId();

        System.out.println(sumId);
        System.out.println(sumFromId);
    }

对集合中某个属性值进行求和运算,可以使用 sum 或 sumFrom 函数。

抽取元素属性组成集合:

    @Test
    public void testExtract() {
        List<String> names = Lambda.extract(list, Lambda.on(Person.class).getName());
        for (String name : names) {
            System.out.println(name);
        }
    }

将集合中某一属性全部取出,单独组成一个集合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是对每句代码的注释: ``` set xDamp 0.05; # 设置阻尼比 set nEigenI 1; # 设置首个振型的编号 set nEigenJ 2; # 设置第二个振型的编号 set lambdaN [eigen [expr $nEigenJ]]; # 计算特征值 set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; set omegaI [expr pow($lambdaI,0.5)]; # 计算首个振型的角频率 set omegaJ [expr pow($lambdaJ,0.5)]; # 计算第二个振型的角频率 set alphaM [expr $xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # 计算Rayleigh阻尼系数中的alphaM set betaKcurr [expr 2.*$xDamp/($omegaI+$omegaJ)]; # 计算Rayleigh阻尼系数中的betaKcurr rayleigh $alphaM $betaKcurr 0 0 # 设置Rayleigh阻尼 puts $alphaM puts $betaKcurr # 输出alphaM和betaKcurr的值 set iGMfile "DM1X.txt"; # 设置地震波数据文件名 set iGMfact "1"; # 设置地震波数据的放大倍数 set dt 0.02; # 设置时间步长 set dispSeries1 "Series -dt $dt -filePath $iGMfile -factor $iGMfact"; # 定义位移时间历史数据1 set iGMfile "DM1X.txt"; # 重新设置地震波数据文件名 set iGMfact "1"; # 重新设置地震波数据的放大倍数 set dt 0.02; # 重新设置时间步长 set dispSeries2 "Series -dt $dt -filePath $iGMfile -factor $iGMfact"; # 定义位移时间历史数据2 pattern MultiSupport 1 { # 定义多支座约束模式1 groundMotion 1 Plain -disp $dispSeries1 # 设置地震波输入 imposedMotion 1 1 1 # 设置结构约束 imposedMotion 3 1 1 } pattern MultiSupport 2 { # 定义多支座约束模式2 groundMotion 2 Plain -disp $dispSeries2 # 设置地震波输入 imposedMotion 2 1 2 # 设置结构约束 imposedMotion 4 1 2 } constraints Transformation; # 定义结构约束模式 numberer Plain; # 定义节点编号模式 system SparseSPD; # 定义线性求解器 test EnergyIncr 1.0e-4 200; # 定义收敛判据 algorithm Newton # 定义求解算法 integrator Newmark 0.5 0.25 # 定义积分器 analysis Transient # 定义分析类型 analyze 1000 0.02 # 进行1000个时间步的动力分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值