精华内容
下载资源
问答
  • 在查询出的树形菜单数据有序排列的情况下,我采用倒序的遍历,拼凑出最终的树,只使用了1次for循环,以空间换时间,效果还不错,具体的原理稍后补充。 数据库数据如下: 可以看到,在mid有序排列的情况下,...

    普通的树形菜单生成是采用递归法,比较浪费时间和空间。在查询出的树形菜单数据是有序排列的情况下,我采用倒序的遍历,拼凑出最终的树,只使用了1次for循环,以空间换时间,效果还不错,具体的原理稍后补充。
    数据库中数据如下:
    数据库树形菜单内容
    可以看到,在mid有序排列的情况下,如果倒序从mid为38的记录中获得pid35,然后获得到mid为35的记录,在其Chirldren属性中追加该mid为38的记录,同时继续往上遍历mid为37的记录,依次压缩树形菜单,最终剩下的就是树形菜单的根节点,根节点中包含树形菜单,这样就倒序遍历一遍,即可获得树形菜单。
    实现代码:

    public class Mian {
    
        static String sql = null;
        static DBHelper db = null;
        static ResultSet ret = null;
    
        public static void main(String[] args) throws Exception {
            sql = "select mid,pid,text,issort from cc_Xuefen";
            db = new DBHelper(sql);
            ret = db.pst.executeQuery();// 执行查询
            List<BaseXuefen> orgList = (List<BaseXuefen>) Model.resultSetToList(ret, BaseXuefen.class);
            List<Integer> keyList = new ArrayList<Integer>();
            HashMap<Integer, XuefenTreeItem> hashMap = new HashMap<Integer, XuefenTreeItem>();
            for (BaseXuefen baseOrg : orgList) {
                XuefenTreeItem o = new XuefenTreeItem(baseOrg);
                hashMap.put(baseOrg.getMid(), o);
                keyList.add(baseOrg.getMid());
            }
            for (int i = keyList.size() - 1; i >= 0; i--) {
                XuefenTreeItem oti = hashMap.get(keyList.get(i));
                if (hashMap.containsKey(oti.getPid())) {
                    XuefenTreeItem otiFather = hashMap.get(oti.getPid());
                    List<XuefenTreeItem> otiChirldrenList = null;
                    if (otiFather.getChildren() == null) {
                        otiChirldrenList = new ArrayList<XuefenTreeItem>();
                    } else {
                        otiChirldrenList = otiFather.getChildren();
                    }
                    otiChirldrenList.add(oti);
                    otiFather.setChildren(otiChirldrenList);
                    hashMap.put(keyList.get(i), otiFather);
                    hashMap.remove(keyList.get(i));
                }
            }
            List<XuefenTreeItem> tree = new ArrayList<XuefenTreeItem>();
            for (Entry<Integer, XuefenTreeItem> o : hashMap.entrySet()) {
                tree.add(o.getValue());
            }
            System.out.println(JSON.toJSONString(tree));
            ret.close();// 关闭结果集
            db.close();// 关闭连接
    
        }
    
    }

    运行结果:
    JSON字符串验证

    展开全文
  • Python中的遍历

    2019-09-28 20:41:32
    python中的遍历 python通过保留字for实现...其中遍历结构可以是字符串,文件,组合数据类型,或者是range()函数具体的使用方法如下: #循环N次 for i in range(N): <语句块> #遍历文件的每一行 for line in f...

    python中的遍历

    python通过保留字for实现“遍历循环”,基本的使用方法如下:

    for <循环变量> in <循环结构>:
    	<语句块>
    

    其中遍历结构可以是字符串,文件,组合数据类型,或者是range()函数具体的使用方法如下:

    #循环N次
    for i in range(N):
    	<语句块>
    #遍历文件的每一行
    for line in fi:
    	<语句块>
    #遍历字符串
    for C in s:
    	<语句块>
    #遍历列表
    for item in ls:
    	<语句块>
    

    遍历循环还有一种扩展方式,使用方法如下所示:

    for <循环变量> in <遍历结构>:
    	<语句块1>
    else:
    	<语句块2>
    

    下面给出示例

    for s in 'abides':
        print('遍历进行中: '+s)
    else:
        print('遍历正常结束')
    

    结果如下所示:
    在这里插入图片描述

    展开全文
  • for in循环值不一定按顺序,设计之初,给普通以字符串的值为key对象使用。 for of 和 for可以保证遍历顺序 哪些数据结构部署了 Symbol.iteratoer属性了呢? 只要有 iterator 接口数据结构,都可以使用 ...

    forEach会把数组中的顺序丢掉
    for in循环出的值不一定是按顺序的,设计之初,是给普通以字符串的值为key的对象使用的。

    for of 和 for可以保证遍历顺序

    哪些数据结构部署了 Symbol.iteratoer属性了呢?

    只要有 iterator 接口的数据结构,都可以使用 for of循环。

    数组 Array
    Map
    Set
    String
    arguments对象
    Nodelist对象, 就是获取的dom列表集合
    -以上这些都可以直接使用 for of 循环。 凡是部署了 iterator 接口的数据结构也都可以使用数组的 扩展运算符(…)、和解构赋值等操作。

    我也想让对象可以使用 for of循环怎么办?使用 Object.keys() 获取对象的 key值集合后,再使用 for of
    以例1为例

     const obj = {
            a: 1,
            b: 2,
            c: 3
        }
     
        for (let i of Object.keys(obj)) {
            console.log(i)
            // 1
            // 2
            // 3
        }
    

    也可以给一个对象部署 Symbol.iterator属性。

    展开全文
  • Map的遍历方式

    2014-07-02 14:45:00
    根据具体需求采用不同的遍历方式,第二种方式比较常用,但当数据量不大,而且key值比较简单的数值型字符串时,第一种比第二种稍快,可以考虑第一种方式。 根据java语法可以有2写法: 1、使用for循环; 2、...

    根据Map本身结构,其遍历方式大概有三种:

    1、通过key遍历;

    2、通过key + value遍历;

    3、通过value遍历。

    根据具体需求采用不同的遍历方式,第二种方式比较常用,但当数据量不大,而且key值是比较简单的数值型字符串时,第一种比第二种稍快,可以考虑第一种方式。

     

    根据java语法可以有2中写法:

    1、使用for循环;

    2、使用iterator迭代;

    两种方式效率差不多;使用for循环稍微好一点;

    具体遍历代码如下:

    package com.my.project;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    //Map的几种遍历方式
    public class TravelMap {
        public static void main(String[] args){
            Map<String, String> map = new HashMap<String, String>();
            map.put("1", "value1");
            map.put("2", "value2");
            map.put("3", "value3");
        /*==========================第一种,通过key遍历=========================================*/    
            //for循环写法
            for(String key:map.keySet()){
                System.out.println("key = " + key);
                System.out.println("value = " + map.get(key));
            }
            //迭代写法
            Iterator<String> ite = map.keySet().iterator();
            while(ite.hasNext()){
                String key = ite.next();
                String value = map.get(key);
            }
        /*==========================第二种,通过迭代遍历=========================================*/
            //for循环写法,容量大时使用
            for(Map.Entry<String, String> entry : map.entrySet()){
                String key = entry.getKey();
                String value = entry.getValue();
                System.out.println("key = " + key);
                System.out.println("value = " + value);
            }
            //迭代写法
            Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
            while(it.hasNext()){
                Map.Entry<String, String> entry = it.next();
                String key = entry.getKey();
                String value = entry.getValue();
                System.out.println("key = " + key);
                System.out.println("value = " + value);
            }
        
        /*==========================第三种,通过value遍历=========================================*/    
            for(String value : map.values()){
                System.out.println(value);
            }
            
            
        }
    
    }

     

     

     

    转载于:https://www.cnblogs.com/zhangchunxi/p/3820229.html

    展开全文
  • 关于JSON对象的遍历

    2016-08-07 01:07:39
    对于JSON对象结构可以使用for…in…循环遍历JSON对象中的数据。 举个栗子: 执行结果: 注意:由于变量a是字符串,因此不能使用obj.a来获取JSON数据,而必须使用obj[a]来获取JSON数据。 各位也都...
  • 1. 序列 (sequence) 1.1 基本概念 序列Python 中最基本的一种数据结构。...不可变序列(序列中的元素不能改变):例如 字符串(str)、 元组(tuple) 2.列表(list) 列表Python中的一个对象 列表的作用:
  • 字符串的数组特性

    2021-03-26 10:53:09
    字符串与数组有相似的结构字符串是由字符组成的...3. 使用 for 循环遍历字符串中的每个字符。 字符串只是具备部分数组的特性: 1. 字符串无法像数组那样修改其中的某个字符。 2. 字符串的 length 也不能修改。 ...
  • 想看更多算法题,可以扫描上方二维码关注我微信公众号“数据结构和算法”,截止到目前我已经在公众号更新了500多道算法题,其中部分已经整理成了pdf文档,截止到目前总共有1000多页(并且还会不断增加),可以在...
  • 面向对象 类----定义属性和方法 对象 类具体实现,继承了类所定义属性和方法...js语言一切皆为对象,比如数字、字符串、数组、Math、Object、函数 js对象本质:属性和方法集合(无序,所以对象没有len...
  • 程序循环结构 5 遍历循环: for语句 遍历循环 根据循环执行次数确定性循环可以分为...for <循环变量> in <遍历结构: <语句块> 5 遍历循环: for语句 遍历结构可以是字符串文件组合数据类型或range)函数 循环N次 for i
  • 12 Python中的循环结构

    2020-09-27 20:15:57
    程序在一般情况下按照顺序执行,但还有大量非顺序执行循环语句允许执行一个语句或多个语句构成语句组多次。 Python提供了for循环和while循环...for语句可以遍历任何序列项目,如一个列表、元组或一个字符串。 .
  • 由于题目没有明确说明,根据示例我判断字符串中出现字符应该在[‘a’,‘z’]之间,实践证明确实如此。基于这个前提,使用bool数组做法定义一个长度为26初始值全为0 bool数组,逐个字符遍历astr,如果bool...
  • 列表python中的一个度底薪 可以用来保存多个有序的数据 用来存储对象的对象 列表的使用 列表 创建:通过[]来创建一个空列表 切片 切片指通过现有类别中获取一个子列表 通过切片来获取指定的元素 语法:列表...
  • 1.6字符串的遍历循环 1.7pass语句 循环结构 循环结构是结构化程序设计常用的结构可以简化程序,或解决顺序结构和选择结构无法解决问题。循环指在满足一定条件情况下,重复执行一组语句的结构。重复执行...
  • 浅析Python中的for 循环

    2020-12-24 14:46:07
    在Python for循环遍历序列的任何物品,如一个列表或一个字符串,有能力。 for循环语法: for iterating_var in sequence: statements(s) 如果一个序列包含一个表达式列表,它第一个评价。然后,该序列中的第一...
  • 1.遍历循环:for 语句 遍历循环: 根据循环执行次数确定性,循环可以分为确定次数循环和非确定...遍历结构可以是字符串、文件、组合数据类型或range函数: (1)计数循环(N次) for i in range(N): <语句
  • Python循环语句

    2020-12-21 22:33:45
    今天我们来讲循环。最近多了几位粉丝,在此...遍历结构可以是字符串、文件、range()函数或组合数据类型等。 遍历循环可以理解为从遍历结构逐一提取元素,放在循环变量,对于每个所提取元素执行一次语句块。for
  • python中的for in 循环

    万次阅读 2018-10-05 09:17:21
    说明:也一种循环结构,常用于遍历可迭代的对象,如:字符串、列表、元组、字典、集合 执行流程:x依次表示y中的一个元素,遍历完所有元素后结束循环 可迭代对象:列表、元组、字典等都可迭代对象,可以遍历的...
  • 循环结构(for-in)

    2021-02-10 20:17:31
    说明:也是循环结构的一种,经常用于遍历字符串、列表,元组,字典等 格式: for x in y: 循环体 执行流程:x依次表示y中的一个元素,遍历完所有元素循环结束 示例1:遍历字符串 s = ‘I love you more than i can ...
  • 1、Python 中的for循环可以遍历任何序列的项目,如一个列表或者一个字符串,如下: for i in "hdfjdks": print(i) 结果: h d f j d k s for i in [1,2,3]: print(i) 或者: for i in (1,2,3): print(i) 结果: ...
  • Python for循环可以遍历任何序列项目,如一个列表或者一个字符串。编写循环语句时,其语法这样,如下图: sport = ["football","basketball","pingpong"] #列表 for i in sport: print(...
  • pythonfor循环与range

    2020-07-15 20:32:24
    Python提供的另外一个循环结构就是for循环语句,Python提供的for循环语句和Java、C++等编程语言提供的for语句不同,Python中的for循环更像shell或是脚本语言中的foreach循环。它可以遍历如列表、元组、字符串等...
  • 循环结构控制语句 目录循环结构控制语句一、while语句总结 一、while语句 循环的意思就是让程序重复地执行某些语句。在实际应用中,当碰到需要多...for语句可以循环遍历任何序列中的元素,如列表、元组、字符串等, 语
  • Python基础------几种循环结构详解

    热门讨论 2021-02-19 14:06:01
    Python基础------几种循环结构详解 ...上述格式可以循环内容有很多,如元组、列表、字符串等等。只要可以遍历、可循环的的内容均可作为循环体存在。 其中参数,主要用来存放每次循环体送来单个元素,实
  • 简单来说本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 常见的数据模型 1. 层次结构模型: 层次结构模型实质上一种有根结点的定向有序树,IMS...
  • 题目: 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 这个我自己第二次做写的代码: 其中Find的使用也不是自己想起来的,...题目中要求第一个出现,则可以字符串中的
  • Python循环语句_for循环

    2021-01-23 20:41:03
    3、对象为要遍历或迭代对象,该对象可以是任何有序序列对象,如字符串、列表、元组等;循环体为一组被重复执行语句。 4、for循环语句可以循环数值、遍历字符串\列表、元组\集合\字典等。 5、实质上是将后面可...
  • for是Python另外一个循环语句,提供了Python最强大的循环结构,它可以循环遍历任何序列项目,如一个列表或者一个字符串。(sequence可以是列表元组集合,如果是字典只能遍历keys,无法遍历values) 1.语法格式 ...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 224
精华内容 89
关键字:

遍历循环中的遍历结构可以是字符串