精华内容
下载资源
问答
  • //正确写法 综上可得,定义列表套列表时泛型的类型参数必须相同或者类似于new ArrayList();这种写法不定义泛型, 这种情况下会默认和前面的泛型保持一致,也是正确的写法 2. List of List深入解析 import java.util....

    1. List of List使用规范

    List<List<Integer>> list = new List<List<Integer>>() //错误写法,因为List是接口,不能实例化(Cannot instantiate the type List<List<Integer>>)。
    List<List<Integer>> list = new ArrayList<ArrayList<Integer>>(); //错误写法,会报错:类型无法转换
    List<LinkedList<Integer>> list = new LinkedList<LinkedList<Integer>>();//正确写法
    List<List<Integer>> list = new LinkedList<List<Integer>>(); //正确写法
    List<List<String>> ans = new ArrayList<>(); //正确写法
    
    

    综上可得,定义列表套列表时泛型的类型参数必须相同或者类似于new ArrayList<>();这种写法不定义泛型, 这种情况下会默认和前面的泛型保持一致,也是正确的写法

    2. List of List深入解析

    import java.util.ArrayList;
    import java.util.List;
    
    public class test {
        public static void main(String[] args) {
            List<List<String>> ans = new ArrayList<>();
            List<String> tmp = new ArrayList<>();
            tmp.add("aa");
            ans.add(tmp);
            System.out.println("ans is: ");
            System.out.println(ans);  //result 1. [[aa]]
            tmp.clear();
            tmp.add("bb");
            ans.add(tmp); 
            System.out.println("ans is: ");
            System.out.println(ans);  //result 2. [[bb], [bb]]  
        }  
    }
    

    注意上述代码中的result 2, 使用过程中需要注意, 列表a连续将列表b add()了多次的情况下,只要列表b发生了变化, 列表a中所有子列表都会随之变化。 所以在有些我们不希望列表a中前面已经添加好的子列表变化的场景下,写代码或者算法题时这里应该创建一个新的临时列表存储每一个时刻的b列表的值。

    import java.util.ArrayList;
    import java.util.List;
    
    public class test {
        public static void main(String[] args) {
            List<List<String>> ans = new ArrayList<>();
            List<String> tmp = new ArrayList<>();
            tmp.add("aa");
            List<String> new_temp = new ArrayList<>();
            new_temp.add(temp.get(0));
            //ans.add(tmp);
            ans.add(new_tmp);
            System.out.println("ans is: ");
            System.out.println(ans);  //result 1. [[aa]]
            tmp.clear();
            tmp.add("bb");
            List<String> new_temp = new ArrayList<>();
            new_temp.add(temp.get(0));
            ans.add(new_temp); //result 2. [[aa], [bb]]
            System.out.println("ans is: ");
            System.out.println(ans);    
        }  
    }
    

    上面的例子往往用于for循环不断修改tmp列表的值并且需要将新列表的值add到ans列表中。

    展开全文
  • 最近,项目中遇到一个问题,就是列表显示的嵌套,外面是一个RecyclerView列表,而其中一个单项竟然也是列表,产品设计的是否规范暂且不论,先想办法实现吧,本以为这样嵌套很难实现,结果写下来也不过如此,虽然写的...

    最近,项目中遇到一个问题,就是列表显示的嵌套,外面是一个RecyclerView列表,而其中一个单项竟然也是列表,产品设计的是否规范暂且不论,先想办法实现吧,本以为这样嵌套很难实现,结果写下来也不过如此,虽然写的时候内心很刺激。

    方法:按照正常实现就可,那个单项布局里放一个RecyclerView,在holder里find到它,然后在给它接上一个适配器,也就是在外层列表Adapter中,再给它的单项子控件配一个Adapter,就问你刺激不???废话少说,上代码,客官请看…….

    public class ContractDeatilAdapter extends
            RecyclerView.Adapter<ContractDeatilAdapter.ContractDetailHolder> {
    
        private static final int TYPE_SIMPLE = 1;//普通简易布局,只有两个textview
        private static final int TYPE_INSTALMENT = 2;//分期付款的布局
    
        private Context mContext;
        private List<String> valueList;
        private List<String> keyList;
        private List<ContractDetailBean.DataBean.RentpactpayplanfullinfosBean> payStagesList;
    
        public ContractDeatilAdapter(Context mContext, List<String> valueList, List<String> keyList,
                                     List<ContractDetailBean.DataBean.RentpactpayplanfullinfosBean> payStagesList) {
            this.mContext = mContext;
            this.valueList = valueList;
            this.keyList = keyList;
            this.payStagesList = payStagesList;
        }
    
        @Override
        public ContractDetailHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_contract_detail_instalment, parent, false);
            return new ContractInstalmentHolder(itemView);
        }
    
    
        @Override
        public int getItemCount() {
            if (valueList != null && payStagesList != null) {
                return valueList.size() + payStagesList.size();
            }
            return 0;
        }
    
        @Override
        public void onBindViewHolder(ContractDetailHolder holder, int position) {
                ContractInstalmentHolder instalmentHolder = (ContractInstalmentHolder) holder;
    
                int stagePosition = position - valueList.size();
                StagePayDetailAdapter mRefundAdapter = new StagePayDetailAdapter(mContext,
                        payStagesList.get(stagePosition).getRentpactpaylists());
                ((ContractInstalmentHolder) holder).rvRefundDetail.setLayoutManager(new LinearLayoutManager(mContext){
                    @Override
                    public boolean canScrollVertically() {
                        return false;
                    }
                });
                ((ContractInstalmentHolder) holder).rvRefundDetail.setAdapter(mRefundAdapter);
            }
        }
    
        class ContractDetailHolder extends RecyclerView.ViewHolder {
            public ContractDetailHolder(View itemView) {
                super(itemView);
            }
        }
    
    
    
        /**
         * 分期付款详情 的holder
         */
        class ContractInstalmentHolder extends ContractDetailHolder {
            TextView tvGrade;
            LinearLayout layoutTitle;
            TextView tvPay, tvBeginDate, tvPayDate, tvOverDate;
            RecyclerView rvRefundDetail;
            TextView tvMemo;
    
            public ContractInstalmentHolder(View itemView) {
                super(itemView);
                layoutTitle = (LinearLayout) itemView.findViewById(R.id.layout_title);
                tvGrade = (TextView) itemView.findViewById(R.id.tv_grade);
                tvPay = (TextView) itemView.findViewById(R.id.tv_pay);
                tvBeginDate = (TextView) itemView.findViewById(R.id.tv_begindate);
                tvPayDate = (TextView) itemView.findViewById(R.id.tv_paydate);
                tvOverDate = (TextView) itemView.findViewById(R.id.tv_overdate);
                rvRefundDetail = (RecyclerView) itemView.findViewById(R.id.rv_refunddetail);
                tvMemo = (TextView) itemView.findViewById(R.id.tv_memo);
            }
    
        }
    }
    
    展开全文
  • python 字典列表/列表套字典 数据去重 第一种: defdeleteDuplicate(li): func=lambdax,y:xifyinxelsex+[y] li=reduce(func,[[],]+li) returnli 关于reduce(),请看http://docs.python.org/2/libr...

     

    python 字典列表/列表套字典 数据去重

    第一种:

    def deleteDuplicate(li):
        func = lambda x, y: x if y in x else x + [y]
        li = reduce(func, [[], ] + li)
        return li

    关于reduce(),请看http://docs.python.org/2/library/functions.html#reduce

    第二种:

    def deleteDuplicate(li):
        temp_list = list(set([str(i) for i in li]))
        li=[eval(i) for i in temp_list]
        return li

    第三种方法:

    [dict(t) for t in set([tuple(d.items()) for d in li])]
    
    
    # 解释
    li 是原始列表
    d  是列表中的一个字典
    t  是从字典中创建的元组之一
    
    
    l = [{'a': 123, 'b': 1234},
            {'a': 3222, 'b': 1234},
            {'a': 123, 'b': 1234}]
    
    seen = set()
    new_l = []
    for d in l:
        t = tuple(d.items())
        if t not in seen:
            seen.add(t)
            new_l.append(d)
    
    print new_l

    建议使用第三种,因为速度更加快,经过测试相同的数据,第三种方法速度比第一种的10倍

    样例演示:

    li = [
            {'a': 'b', 'c': 'c'},
            {'a': 'b', 'b': 'b'},
            {'a': 'b', 'd': 'd'},
            {'a': 'b', 'e': 'e'},
            {'a': 'b', 'f': 'f'},
            {'a': 'b', 'b': 'b'},
            {'a': 'b', 'c': 'c'},
        ]
        
    li = deleteDuplicate(li)
    print (li)
    
    [{'a': 'b', 'c': 'c'}, {'a': 'b', 'b': 'b'}, {'a': 'b', 'd': 'd'}, {'a': 'b', 'e': 'e'}, {'a': 'b', 'f': 'f'}]

    测试性能相关代码:

     

    展开全文
  • 列表套字典,去重列表内字典

    千次阅读 2019-04-15 17:38:52
    t1 = [{'b':1},{'b':1}, {'a':2}] t2 = [{key:value} for key, value in dict([d.items()[0] for d in t1]).items()] print t2 >>[{'a': 2}, {'b': 1}]
    t1 = [{'b':1},{'b':1}, {'a':2}]
    t2 = [{key:value} for key, value in dict([d.items()[0] for d in t1]).items()]
    
    print t2
    
    >>[{'a': 2}, {'b': 1}]
    
    展开全文
  • 打开打设置时,系统提示:显示可用的打单据列表时发生错误:无效的过程调用或参数。注册打单据时,选中打模板以后,已注册打单据里面为空。 处理步骤: 1、首先怀疑是不是系统打印设置了按用户保存...
  • 13.9 … with 2 more variables: df.residual , nobs 后面的省略了 就是生成了一个列表嵌套列表的数据 用下面的代码就可以直接转换成数据框,简单思路就是解嵌套,然后加上列名字。 model_sum1dematrix (matrix...
  • python 字典字典或列表

    万次阅读 2016-11-16 10:25:16
    python 字典字典或列表 文件f1 A 1 a A 1 b A 2 C B 2 a B 2 b 生成如下字典:tdict={'A':{1:['a','b'], 2:['C']}, 'B':{2:['a','b']} } In [22]: tdict={} In [23]: f=o
  • 列表生成式中使用if与if-els 列表推导式总共有两种形式: [x for x in data if condition] 此处if主要起条件判断作用,data数据中只有满足if条件的才会被留下,最后统一生成为一个数据列表 [exp1 if condition ...
  • 单据点击打设置报错,显示可用的打单据列表时发生错误。提示如下:请按照下列步骤操作:1、登录 K/3 主控台后,依次单击【系统设置】→【系统设置】→【销售管理】,双击【打印控制】;2、打开【系统参数维护】...
  • ftp列表(数据接字)错误

    千次阅读 2019-03-11 11:38:51
    错误显示如下 解决方案: 1.打开选项,找到参数选择-连接属性下面的ftp----把数据连接模式改为主动模式就OK了
  • 这道例题可以用来演示如何用python遍历字符串列表。 题目:两个乒乓球队进行比赛,各出三人。 甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,...
  • 1.查看端口是否默认21 2.参数选项选择主动port 3.服务器防火墙端口打开40000-62235 4.serv-u服务器端ie在服务器本地服务器-关闭ie增强 5.ie添加信任站点 6.退出安全软件 尝试了这么多,最终解决了问题,应该是端口的...
  • Python基础:List列表操作&嵌套列表

    万次阅读 多人点赞 2019-01-30 00:47:45
    访问列表及切片访问 # list 列表:一组数据 # list 是有序的序列 # 序列中的每个元素分配一个索引,也就是角标,角标的位置也是从0开始 list1 = [&amp;quot;建国&amp;quot;,&amp;quot;爱国&amp;...
  • *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 【Android 仿微信通讯录 导航分组列表-上】使用ItemDecoration为RecyclerView打造带悬停头部的分组列表一 概述本文是Android导航分组列表系列上,因时间和...
  • python中合并大列表中的小列表

    千次阅读 2019-06-27 17:21:05
    合并大列表中的小列表 例如: d = [[1, 2, 3], [3,4, 5], [6, 7]] d=sum(d, []) print(d) [1, 2, 3, 3, 4, 5, 6, 7] 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑...
  • Python中列表与嵌套列表

    千次阅读 2020-08-16 17:22:39
    s=[ [‘001’,‘李明’,92,93,95], [‘002’,‘王的’,86,91,88], [‘003’,‘王s’,86,91,88] ] print(“具体值”,s[1][1]) print(“嵌套中1号组列表数据”,s...ss.append(st)#列表添加到嵌套列表中 print(“嵌套列表
  • 现有一个电影的数据:包括电影的名称、电影上映的年限、导演等信息,分别存放于三个列表中,现在需要将这数据整合到一个数据中,可以使用列表的循环+insert()的API方法来操作,实现代码如下: # -*- coding: utf-8...
  • python的编程使用过程中,list列表结构我想是必不可少的,这也是python里面非常非常重要的一种数据结构,list可以用来模拟Queue队列还可以用来模拟Stack堆栈等等,非常的强大,今天在使用列表的时候有一个需求就是...
  • 微信小程序 列表渲染多层嵌套循环

    万次阅读 2018-08-09 15:25:01
    入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉。 &lt;view wx:for="{{items}}"&gt; {{index}}: {{...
  • 有序列表、无序列表、嵌套列表

    千次阅读 2020-01-14 21:52:43
    -- 无序列表 --> 无序列表: <li>Coffee <li>Tea <li>Milk <!-- 有序列表 --> 有序列表 <li>Coffee <li>Tea <li>Milk <li>Coffee <li>Tea <li>Milk <!-- 不同类开明的有序列表 --> 不同类型的有序...
  • Python中关于列表嵌套列表的处理

    万次阅读 2019-02-28 11:28:00
    在处理列表的时候我们经常会遇到列表中嵌套列表的结构,如果我们要把所有元素放入一个新列表,或者要计算所有元素的个数的话应该怎么做呢? 第一个例子 对于上图中的这样一组数据,如果我们要知道这个CSV文件中所有...
  • 列表推导式与字典推导式,滚雪球学 Python

    千次阅读 多人点赞 2021-03-03 21:50:58
    列表推导式、字典推导式、集合推导式、生成器初识
  • Flutter ListView列表布局

    千次阅读 2019-06-08 11:32:59
    目录 参数详解 代码示例 效果图 ... Axis.horizontal 水平列表 Axis.vertical 垂直列表 reverse 组件反向排列,默认false controller 滚动控制器(滑动监听,为true监听无效) ...
  • android 列表倒计时流畅的完美实现

    万次阅读 2016-01-19 10:50:36
    本博客由gengqiquan原创,转载请注明出处http://blog.csdn.net/gengqiquan/article/details/50541007,尊重他人的技术劳动成果,谢谢最近宣传自己新写的一个APP的时候,好多开发朋友都在询问我首页的列表倒计时如何...
  • 如果Spring Boot中对应的Controller要接收一个对象,该对象中又存放了一个List列表,那么页面该如何传递相关应的参数信息呢。 本篇文章给大家一个简单的示例,提供一种实现方式。 实体类 首先看实体类的结构(注意...
  • Python二维列表列表嵌套)

    千次阅读 2020-03-29 19:32:55
    Python二维列表列表嵌套) 二维列表相当于二维数组。 一、创建二维列表 1、直接定义 >>> a=[[1,2,3],[4,5,6],[7,8,9]] 2、循环嵌套定义: >>> a=[] >>> for i in range(3): a.append...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 369,278
精华内容 147,711
关键字:

列表套列表