`

Java趣味短码

    博客分类:
  • Java
阅读更多

原文:http://www.ituring.com.cn/article/27186#jtss-tqq

 

今天跟公司的童鞋聊天的时候,谈到了关于短码和代码的精简的方式,所以整理出来。

需求很简单。

首先定义一个类

classItem{publicint key;publicint l;publicint r;};

然后主函数的场景大概是这样

publicstaticvoid main(String[] args){Item x;
    x =newItem();
    x.key =1;
    x.l =10;
    x.r =20;int i =0;if(x.key > i){
        i = x.l;}else{
        i = x.r;}

    i =0if( x.key > i){
        x.l = i;}else{
        x.r = i;}}

这里面有两个子场景,就是接下来要讨论的。

子场景1

if(x.key > i){
        i = x.l;}else{
        i = x.r;}

子场景2

if( x.key > i){
        x.l = i;}else{
        x.r = i;}
  • 子场景1 的规律是 左面的值都是一样的,都是赋值给i

  • 子场景2 的规律是 右面的值都是一样的,都是用i赋给别的变量。

那么我们如何来简化实现这两类场景呢?

第一个场景很简单,可以如下优化:

i =( x.key >i ? x.l : x.r);

第二个场景比较棘手!

因为表达式不能被赋值。

那么我们需要一个传值函数。

publicstatic<T>boolean to_(T s , T d){if(  s.getClass()!= d.getClass()){returnfalse;}
    d = s;returntrue;}

有了如上函数我们就可以这样写

boolean r =( x.key >i ? to_(i,x.l): to_(i,x.r));

r是一个结果值用来检测类型是否正确。

如下是完整的代码。

package tPackge;classItem{publicint key;publicint l;publicint r;};publicclass test01 {publicstatic<T>boolean to_(T s , T d){if(  s.getClass()!= d.getClass()){returnfalse;}
        d = s;returntrue;}/**
     * @param args
     */publicstaticvoid main(String[] args){Item x;
        x =newItem();
        x.key =1;
        x.l =10;
        x.r =20;int i =0;if(x.key > i){
            i = x.l;}else{
            i = x.r;}System.out.println(x.l);System.out.println(x.r);System.out.println(i);System.out.println("--------------------------");       
        i =( x.key >i ? x.l : x.r);System.out.println(x.l);System.out.println(x.r);System.out.println(i);/*
        if ( x.key > i){
            x.l = i;
        }else{
            x.r = i;
        }
        */System.out.println("--------------------------");
        i =0;//if ( x.key > i ) { x.l = i; } else { x.r = i; } System.out.println(x.l);System.out.println(x.r);if(( x.key >i ? to_(i,x.l): to_(i,x.r))){System.out.println(i);}}}


分享到:
评论

相关推荐

    JAVA趣味编程100实例

    在标题“JAVA趣味编程100实例”下,描述中提到“很实用的java趣味编程小程序”,这说明本文件旨在通过有趣的编程实例来帮助学习者加深对Java语言的理解和应用能力。通过解决实际问题来提高编程技能,这些实例很可能...

    Java趣味编程100例.pdf

    Java趣味编程100例.pdf

    java趣味编程100例

    Java趣味编程100例是一份专为编程爱好者和初学者设计的学习资源,它通过一系列有趣、富有挑战性的实例,帮助学习者深入理解和掌握Java编程语言。这些源文件旨在激发学习者的兴趣,使他们在实践中不断提高编程技能。...

    Java趣味编程100例.docx

    Java趣味编程100例 本节课将带您进入变换多姿的图表世界,体会图表编程带来的乐趣。我们将探索Java语言如何灵活地应用图表,给我们的程序增色不少。 知识点一:图表编程 图表编程是指使用编程语言来生成图表的...

    JAVA趣味编程100实例.pdf

    JAVA趣味编程100实例.pdf

    java 短网址

    综上所述,开发Java短网址服务涉及了哈希算法、数据库操作、编码解码、分布式ID生成、JSP技术以及安全性与性能优化等多个方面。理解并掌握这些关键技术,能帮助我们构建高效、可靠的短网址系统。

    java 对接扫码枪 工具类

    在Java开发中,对接扫码枪是一项常见的任务,特别是在零售、仓储和物流等领域。扫码枪能够快速读取条形码或二维码的信息,将其转化为数字信号,然后由计算机处理。本篇文章将详细讲解如何在Java中创建一个工具类来...

    java扫码枪

    【Java扫码枪技术详解】 Java扫码枪技术是Java在物联网(IoT)和Web应用领域中的一个重要应用,它使得用户可以通过扫码枪设备读取条形码或二维码中的数据,并将其集成到应用程序中进行处理。本DEMO项目展示了如何在...

    java生成一维码

    在Java编程环境中,生成一维码(如常见的条形码)是常见的需求,尤其是在物流、库存管理和产品追踪等领域。本文将深入探讨如何使用Java来生成一维码,并结合提供的资源进行详细讲解。 首先,要理解一维码是一种将...

    Java实现条形码打印

    目前比较通用的用Java实现条形码打印的集成插件主要有:barbecue和barcode4j. 但是用barbecue,条形码可以显示出来,可是下面对应数字却不能显示出来,当然可以自己手动加上去,不过那就不是一张图片里面的了,并且...

    趣味Java电子杂志(Persist)

    这是一群有趣的Java团队,Persist 趣味Java电子期刊为学习Java的亲们解乏,那些在贴吧上留下Email的亲们,来这里下载吧。。。

    java6.5注册码

    java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码

    Java三种生成条形码的源码(barcode4j、jbarcode、google-zxing)

    在Java编程环境中,生成条形码是一项常见的需求,特别是在数据管理、库存跟踪和产品标识等领域。以下是关于使用Java生成条形码的三个主要方法的详细解释:barcode4j、jbarcode和google-zxing。 1. **barcode4j**: ...

    支付宝扫码付和条形码付款demo(java)

    这个压缩包文件名"**F2FPay_Demo_Java**"可能包含了一个Java示例项目,用于演示如何集成支付宝的扫码付和条形码付款功能。在项目中,你可以找到以下关键组件: - **配置文件**:通常包含商户ID、商户私钥、支付宝...

    扫码枪扫码Java程序.zip

    java程序编写获取扫码枪扫码程序,并将扫码枪扫码有数据库MySQL数据进行对比预警,解决相关行业使用扫码枪进行出货重复使用相关商品码问题。该程序连接MySQL数据库,可同时部署到多台机器上进行设备比对。底层也实现...

    扫码点餐java后台+小程序源码

    扫码点餐java后台+小程序源码

    java实现zebra打印条形码

    本文将深入探讨如何使用Java语言实现Zebra斑马打印机的条形码打印功能。 条形码是一种图形化数据表示方式,它通过不同宽度的条和空组合来编码特定的信息,如产品代码、价格信息等。在零售、物流、仓储等领域,条形...

    (word完整版)Java趣味编程100例.doc

    Java趣味编程100例 本资源摘要信息主要介绍了Java趣味编程100例,涵盖了Java编程语言的基础知识和实践应用。下面是对标题、描述、标签和部分内容的解读和知识点总结。 标题:(word完整版)Java趣味编程100例 ...

    Java解压带密码的RAR文件

    Java解压RAR文件,压缩包内包含源码、Jar包、依赖包和示例程序,也可以从http://code.google.com/p/java-unrar/downloads/list这里下载支持密码的unrar项目(包括源码和jar包),其依赖包也很容易搜到。

    Java生成兑换码工具类(英文26个字母加数字随机生成)

    生成指定位数的兑换码,(数字、大写字母随机混排)+(数字、小写字母随机混排)+(小写字母与数字混排),三种方式生成兑换码!

Global site tag (gtag.js) - Google Analytics