码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java数据结构技巧


    Java数据结构技巧

    1、循环

    for-each循环如果不是"[]"的数组类型,则需要提前判断数据结构是否为空,否则有可能会有空指针异常。

    2、对于List对象的i到j位进行排序

    for(List<String> now_result:result)
                {
                    List<String> sublist = now_result.subList(1,now_result.size());
                    Collections.sort(sublist);
                }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    sublist是指针,没有新创建对象,所以只排序sublist就可以实现对于[1,end]的排序。

    3、对于循环中的对象进行增删使用迭代器

    next() - 返回迭代器的下一个元素,并将迭代器的指针移到下一个位置。

    hasNext() - 用于判断集合中是否还有下一个元素可以访问。

    remove() - 从集合中删除迭代器最后访问的元素(可选操作)。

    // 引入 ArrayList 和 Iterator 类
    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class RunoobTest {
        public static void main(String[] args) {
            ArrayList<Integer> numbers = new ArrayList<Integer>();
            numbers.add(12);
            numbers.add(8);
            numbers.add(2);
            numbers.add(23);
            Iterator<Integer> it = numbers.iterator();
            while(it.hasNext()) {
                Integer i = it.next();
                if(i < 10) {  
                    it.remove();  // 删除小于 10 的元素
                }
            }
            System.out.println(numbers);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    输出如果是字符串类型 需要谨慎复杂度

    例题
    美团2024届秋招笔试第一场编程真题 第五题
    在这里插入图片描述

    输入n

    import java.util.Scanner;
    
    // 注意类名必须为 Main, 不要有任何 package xxx 信息
    public class Main {
        private static final Scanner sc = new Scanner(System.in);
    
        public static void main(String[] args) {
            question05();
        }
    
      private static void question05() {
        int left = 1, right = sc.nextInt();
        StringBuilder sb = new StringBuilder();
        while (left < right) {
          sb.append(left++).append(" ").append(right--).append(" ");
        }
        if (left == right) {
          sb.append(left);
        }
        System.out.println(sb);
      }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    最小体力消耗-分支限界法
    Vue {{}}里面不同内容
    电商数据采集,用电商API帮你!(淘宝拼多多京东1688Lazada)
    c语言:解决谁是凶手的问题。
    智能基座昇腾高校行 | 昇思MindSpore携手清华大学共同培养新时代科技人才
    代码随想录一一一数组一一一移除元素
    Java学习02——关键字、字面量、变量
    LLM开源小工具(基于代码库快速学习/纯shell调用LLM灵活管理系统)
    第4章_3——索引的使用
    学习在php中将特大数字转成带有千/万/亿为单位的字符串
  • 原文地址:https://blog.csdn.net/yusude123456/article/details/133218353
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号