原文: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 =0;if( 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趣味编程小程序”,这说明本文件旨在通过有趣的编程实例来帮助学习者加深对Java语言的理解和应用能力。通过解决实际问题来提高编程技能,这些实例很可能...
Java趣味编程100例.pdf
Java趣味编程100例是一份专为编程爱好者和初学者设计的学习资源,它通过一系列有趣、富有挑战性的实例,帮助学习者深入理解和掌握Java编程语言。这些源文件旨在激发学习者的兴趣,使他们在实践中不断提高编程技能。...
Java趣味编程100例 本节课将带您进入变换多姿的图表世界,体会图表编程带来的乐趣。我们将探索Java语言如何灵活地应用图表,给我们的程序增色不少。 知识点一:图表编程 图表编程是指使用编程语言来生成图表的...
JAVA趣味编程100实例.pdf
综上所述,开发Java短网址服务涉及了哈希算法、数据库操作、编码解码、分布式ID生成、JSP技术以及安全性与性能优化等多个方面。理解并掌握这些关键技术,能帮助我们构建高效、可靠的短网址系统。
在Java开发中,对接扫码枪是一项常见的任务,特别是在零售、仓储和物流等领域。扫码枪能够快速读取条形码或二维码的信息,将其转化为数字信号,然后由计算机处理。本篇文章将详细讲解如何在Java中创建一个工具类来...
【Java扫码枪技术详解】 Java扫码枪技术是Java在物联网(IoT)和Web应用领域中的一个重要应用,它使得用户可以通过扫码枪设备读取条形码或二维码中的数据,并将其集成到应用程序中进行处理。本DEMO项目展示了如何在...
在Java编程环境中,生成一维码(如常见的条形码)是常见的需求,尤其是在物流、库存管理和产品追踪等领域。本文将深入探讨如何使用Java来生成一维码,并结合提供的资源进行详细讲解。 首先,要理解一维码是一种将...
目前比较通用的用Java实现条形码打印的集成插件主要有:barbecue和barcode4j. 但是用barbecue,条形码可以显示出来,可是下面对应数字却不能显示出来,当然可以自己手动加上去,不过那就不是一张图片里面的了,并且...
这是一群有趣的Java团队,Persist 趣味Java电子期刊为学习Java的亲们解乏,那些在贴吧上留下Email的亲们,来这里下载吧。。。
java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码java6.5注册码
在Java编程环境中,生成条形码是一项常见的需求,特别是在数据管理、库存跟踪和产品标识等领域。以下是关于使用Java生成条形码的三个主要方法的详细解释:barcode4j、jbarcode和google-zxing。 1. **barcode4j**: ...
这个压缩包文件名"**F2FPay_Demo_Java**"可能包含了一个Java示例项目,用于演示如何集成支付宝的扫码付和条形码付款功能。在项目中,你可以找到以下关键组件: - **配置文件**:通常包含商户ID、商户私钥、支付宝...
java程序编写获取扫码枪扫码程序,并将扫码枪扫码有数据库MySQL数据进行对比预警,解决相关行业使用扫码枪进行出货重复使用相关商品码问题。该程序连接MySQL数据库,可同时部署到多台机器上进行设备比对。底层也实现...
扫码点餐java后台+小程序源码
本文将深入探讨如何使用Java语言实现Zebra斑马打印机的条形码打印功能。 条形码是一种图形化数据表示方式,它通过不同宽度的条和空组合来编码特定的信息,如产品代码、价格信息等。在零售、物流、仓储等领域,条形...
Java趣味编程100例 本资源摘要信息主要介绍了Java趣味编程100例,涵盖了Java编程语言的基础知识和实践应用。下面是对标题、描述、标签和部分内容的解读和知识点总结。 标题:(word完整版)Java趣味编程100例 ...
Java解压RAR文件,压缩包内包含源码、Jar包、依赖包和示例程序,也可以从http://code.google.com/p/java-unrar/downloads/list这里下载支持密码的unrar项目(包括源码和jar包),其依赖包也很容易搜到。
生成指定位数的兑换码,(数字、大写字母随机混排)+(数字、小写字母随机混排)+(小写字母与数字混排),三种方式生成兑换码!