栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA实现Lits元素反转

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA实现Lits元素反转

JAVA实现Lits元素反转
  1. 这种的翻转
import com.google.common.collect.Lists;
import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;

import java.util.*;
import java.util.stream.Collectors;


public class Test {

    public static void main(String[] args) {
        List intList = Arrays.asList(0, 0, 0, 1, 1, 2, 3, 3);
        List resultList = Lists.newArrayListWithCapacity(intList.size());
        List uniqueList = new ArrayList<>();
        Bag intListBag = new HashBag(intList);
        int iniNum = 0;
        for (int i = intList.size() - 1; i >= 0; i--) {
            //去重的 List,元素在该 List 里的个数
            Bag bag = new HashBag(uniqueList);
            //如果该元素在 uniqueList 的个数小于1  说明该元素没有添加过
            if (bag.getCount(intList.get(i)) < 1) {
                //算一下反转元素在 初始化元素的个数
                int count = intListBag.getCount(intList.get(iniNum));
                for (int m = 0; m < count; m++) {
                    resultList.add(intList.get(i));
                }
                // 用于区分该 元素已被添加过
                uniqueList.add(intList.get(i));
                //跳过这么多个数
                iniNum= iniNum + count;
            }
        }
        System.out.println("========uniqueList=========");
        System.out.println(uniqueList);
        //打印 uniqueList结果 [3, 2, 1, 0]
        System.out.println("========resultList=========");
        System.out.println(resultList);
        //打印 resultList 结果 [3, 3, 3, 2, 2, 1, 0, 0]

    }
}
  1. 这是另一种
import java.util.List;
import com.alibaba.fastjson.JSONArray;

public class Test {
    public static void main(String[] args) {
        String arryStr="[{"x":3,"y":2},{"x":2,"y":2},{"x":2,"y":3},{"x":1,"y":3},{"x":2,"y":6},{"x":1,"y":2}]";
        List intList =  JSONArray.parseArray(arryStr, Coordinates.class);
        //初始化数据 [Coordinates(x=3, y=2), Coordinates(x=2, y=2), Coordinates(x=2, y=3), Coordinates(x=1, y=3), Coordinates(x=2, y=6), Coordinates(x=1, y=2)]
        //List resultList = Lists.newArrayListWithCapacity(intList.size());
        System.out.println("========intList=========");
        System.out.println(intList);
        int j=0;
        System.out.println("========intList.size()/2========="+intList.size()/2);
        for(int i = intList.size()-1;i>= (intList.size()/2);i--){
            Coordinates t = new Coordinates();
            t.setX(intList.get(i).getX());
            t.setY(intList.get(i).getY());
            intList.get(i).setX(intList.get(j).getX());
            intList.get(j).setX(t.getX());
            j++;
        }
        System.out.println("========resultList=========");
        System.out.println(intList);
        //打印结果 [Coordinates(x=1, y=2), Coordinates(x=2, y=2), Coordinates(x=1, y=3), Coordinates(x=2, y=3), Coordinates(x=2, y=6), Coordinates(x=3, y=2)]

    }
}

//坐标类
import lombok.Data;
@Data
public class Coordinates {
    private Integer x;
    private Integer y;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031821.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号