JAVA三元运算符_java中三元运算符详解

JAVA三元运算符_java中三元运算符详解一:三元运算符条件表达式?取值1:取值2三元运算符是ifelse或者ifelseifelse的简写形式,可以使代码看起来简洁些。privateStringternary1(intfirst){System.out.println("=================================================================…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一:三元运算符

条件表达式 ? 取值1 :取值2

三元运算符是if else或者if else if else的简写形式,可以使代码看起来简洁些。

private String ternary1(int first){
        System.out.println("===============================================================================================================");
        System.out.println("====三元运算符:if else的模式=====");
        System.out.println("====first=1时返回已售; =====");
        System.out.println("====first!=1时返回未售; =====");
        String str=first==1?"已售":"未售";
        System.out.println("first="+first+",返回:"+str);
        return str;
    }

    private String ternary2(int first,int second){
        System.out.println("===============================================================================================================");
        System.out.println("====三元运算符:if else if else的模式=====");
        System.out.println("====first=1,且second=1时返回 再售; =====");
        System.out.println("====first=1,且second!=1时返回 已售; =====");
        System.out.println("====其它情况时返回 未售; =====");
        String str=first==1?(second==1?"再售":"已售"):"未售";
        System.out.println("first="+first+",second="+second+",返回:"+str);
        return str;
    }

二:foreach操作   for(集合中元素的类型或者数组中元素的类型   表示元素的变量 :  数组或者集合的变量或者表达式){}

java在jdk1.5中开始支持foreach循环,foreach在一定程度上简化了对数组、集合的遍历。

  1. 需要使用索引的地方还是需要用for循环。
  2. foreach只能遍历实现了Iterable接口的集合,例如Collection集合,不能直接遍历Map集合,可以通过遍历map.entrySet遍历Map集合。
  3. 在用foreach循环遍历一个集合时不能向集合中增加元素,不能从集合中删除元素,否则会抛出ConcurrentModificationException异常。
  4. 遍历LinkedList时,foreach遍历的效率高些,在遍历数组和其它集合时二者效率相当。
  5. foreach是一个语法糖(就是通过编译器或者其它手段优化了代码,给使用带来了便利)。foreach在处理集合时,实际上通过迭代器进行处理的(如下所示),在处理数组是是通过普通的for循环处理的。
Iterator<String> iterator=collection.iterator();
        while(iterator.hasNext()){
            System.out.println("迭代=="+iterator.next());
        }

三:java8中配合lambda表达式的forEach

collection.forEach(s -> {
            System.out.println(s);
        });

自定义Consumer<T>类进行迭代

 private class MyConsumer implements Consumer<Object>{

        @Override
        public void accept(Object o) {
            System.out.println("打印输出(动作执行的参数):" + o);
        }
    }

    private void forEach6(){
        System.out.println("============遍历ArrayList  java8  foreach方法============================");
        Collection<String> collection=new ArrayList<>(5);
        for (int i = 0; i <5 ; i++) {
            ((ArrayList<String>) collection).add(i,(i+1)+"");
        }
        collection.forEach(new MyConsumer());
    }

对Map集合的遍历如下所示:

private void forEach7(){
        System.out.println("============遍历HashMap,不能直接遍历Map============================");
        Map<String,String> map=new HashMap<>(5);
        for (int i = 0; i <5 ; i++) {
            map.put(i+"",i+1+"");
        }
        System.out.println("普通方法遍历Map");
        //其实是在遍历Set集合
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println("key : " + entry.getKey() + " value : " + entry.getValue());
        }
        System.out.println("java8 lambda遍历Map");
        map.forEach((k,v)->{
            System.out.println("key:"+k+",value:"+v);
        });
    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179072.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 树莓派 Raspberry Pi 连接 WiFi

    树莓派 Raspberry Pi 连接 WiFi说明开启Wifi的不同情况说明:第一种情况:有显示器和鼠标键盘1.1:桌面操作开启WiFi,包含桌面图形的系统(RaspbianStretchwithdesktop)1.2:通过树莓派配置,适用带桌面或仅命令行的系统。1.3:直接修改配置文件,适用带桌面或仅命令行的系统。第二种情况:无显示器和鼠标键盘2.1:使用另一台可用电脑编辑SD卡(但我尝试不成功,ORZ,望…

    2022年5月18日
    44
  • DNS递归和迭代过程详解

    DNS递归和迭代过程详解目录DNS原理解析DNS进化史DNS结构DNS查询流程DNS服务搭建DNS相关软件的安装服务器搭建规划手把手教你搭建基本DNS服务器搭建主DNS服务器搭建从DNS服务器参考文献DNS原理解析DNS进化史etc/hosts–&gt;NIS–&gt;DNS起初域名和ip地址之间的解析都是完全存放在一个名为hosts的文件当中…

    2022年6月6日
    51
  • HNUSTOJ-1543 字符串的运算再现

    HNUSTOJ-1543 字符串的运算再现

    2022年3月6日
    42
  • JAVA之父—-James Gosling(詹姆斯·高斯林)

    JAVA之父—-James Gosling(詹姆斯·高斯林)JAVA之父詹姆斯·高斯林(JamesGosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”。(百度百科)有些人注定是要出名的,比如微软创始人比尔盖茨,有事没事你都能看到他,但也有一些人,做事不比盖茨差,却注定要泯然人海。如果不是学过Java恐怕没有几个人知道詹姆斯.高斯林大叔。如果没有Java人类就像不会说话的婴儿。人们”爱死了”盖茨,因为他给世界带来了看得见的操作系统;可是没有人会说“我爱死了高斯林”,尽管他所创

    2022年7月7日
    35
  • vue子组件调用父组件函数_vue子组件修改父组件值

    vue子组件调用父组件函数_vue子组件修改父组件值vue子组件调用父组件的3种方法

    2022年10月2日
    4
  • 【最苦逼的不是你,有人比你更苦逼】

    【最苦逼的不是你,有人比你更苦逼】你又在论坛上开了一个长贴,标题写着:“我的婆婆哟,真是个极品!”   你婆婆过春节又来你家住着了,不仅他们老两口,还带着七大姑八大姨,一住就是一个月,简直占领了你的小家。他们的生活习惯完全和你不一样,你感到没有隐私……但你不能抱怨,你得表现得想个得体的主妇,你不能让你的老公感到不愉快,那是他最亲的家人。   于是,和他们生活的日子里,天天跟自己生气,躲在角落里发脾气。有一天,你实在

    2022年5月4日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号