`
lighter
  • 浏览: 498607 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

妙用Commons良药<四>

阅读更多
妙用Commons良药<四>

谈一谈Math包的一点内容,和怎样对属性文件,xml文件进行访问
1、关于org.apache.commons.lang.math的应用
可使用Commons Lang的NumberUtils.max()和NumberUtils.min()方法来从基本类型数组(如
double[],float[],long[],int[],short[],byte[])中检索出最小或最大值.举例:
import org.apache.commons.lang.math.NumberUtils;

double[] array = {0.2, 0.4, 0.5, -3.0, 4.223, 4.226};
double max = NumberUtils.max( array ); // returns 4.226
double min = NumberUtils.min( array ); // returns -3.0



当然,你可以处理数学的范围,需要为某个变量定义一组可接受的值,并检测该变量值是否落在指定的范围内.Range是一个接口,定义了一个简单的数值范围,它有几个不同的实现,如NumberRange,DoubleRange,FloatRange,IntRange以及LongRange等等.
import org.apache.commons.lang.math.DoubleRange;
import org.apache.commons.lang.math.Range;

Range safeSpeed = new DoubleRange( 0.0, 65.0 );
double currentSpeed = getCurrentSpeed( );
if( !safeSpeed.containsDouble( currentSpeed ) ) {
    System.out.println( "Warning, current speed is unsafe." );
}




如果你想生成一个随机数,可以这样写:
import org.apache.commons.lang.math.RandomUtils;

// Create a random integer between 0 and 30
int maxVal = 30;
int randomInt = RandomUtils.nextInt( maxVal );

其作用相当于:int randomInt = (int) Math.floor( (Math.random( ) * (double) maxVal) );
此外提示一点,RandomUtils.nextBoolean()可以返回一个随机的boolean变量


2、关于Jakarta Commons Math包一点应用
举一个例子,如下:
import org.apache.commons.math.stat.StatUtils;

double[] values = new double[] { 2.3, 5.4, 6.2, 7.3, 23.3 };
System.out.println( "min: " + StatUtils.min( values ) );
System.out.println( "max: " + StatUtils.max( values ) );
System.out.println( "平均值: " + StatUtils.mean( values ) );
System.out.println( "积: " + StatUtils.product( values ) );
System.out.println( "和: " + StatUtils.sum( values ) );
System.out.println( "方差: " + StatUtils.variance( values ) );


当然,这一个包也可以处理复数,矩阵,统计以及线性方程,具体的用法参考官方的文档


3、使用Commons Configuration包配置应用程序
如果想访问属性文件的话,可以运用PropertiesConfiguration这一个类:
属性文件如下:
speed=23.332
names=Bob,Gautam,Jarret,Stefan
correct=false
其代码如下:
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.PropertiesConfiguration;

Configuration config = new PropertiesConfiguration( "test.properties" );       
float speed = config.getFloat("speed"));
List names = config.getList("names"));
boolean correct = config.getBoolean("correct");



如果想访问一个xml文件里面具体的属性,可以使用XMLConfiguration的一个实现从某个文档中加载配置参数。举例如下:
其配置文件:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<engine-config>
    <start-criteria>
        <criteria type="critical">
            Temperature Above -10 Celsius
        </criteria>
        <criteria> Fuel tank is not empty </criteria>
    </start-criteria>
    <name>
        <first>Tom</first>
        <last>Payne</last>
    </name>
    <horsepower>42</horsepower>
</engine-config>

具体访问的代码如下:
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.DOMConfiguration;

String resource = "com/discursive/jccook/configuration/global.xml";
Configuration config = new DOMConfiguration(resource);    
// Retrieve a list of all Criteria elements
List startCriteria = config.getList("start-criteria.criteria");
// Retrieve the value of the first criteria element
String firstCriteria = config.getString("start-criteria.criteria(0)");
// Retrieve the type attribute of the first criteria element
String firstCriteriaType = config.getString("start-criteria.criteria(0)[@type]");
// Retrieve the horsepower as an int
int horsepower = config.getInt("horsepower");
分享到:
评论
2 楼 lighter 2007-11-17  
我的MSN是:wu_gc@hotmail.com
1 楼 huozhe 2007-11-15  
好贴,受益了,感谢LZ共享!
同时还看了LZ写的中文分词,我最近正准备学习下关于lucene的全文检索,希望能与LZ交流一下~
我的msn:chenwei27@hotmail.com
能否留个联系方式~

相关推荐

    Apache Commons 所有包最新版本 含SRC (6/7)

    commons-attributes-2.2-src.zip&lt;br&gt;commons-attributes-2.2.zip&lt;br&gt;commons-beanutils-1.8.0-BETA-src.zip&lt;br&gt;commons-beanutils-1.8.0-BETA.zip&lt;br&gt;commons-betwixt-0.8-src.zip&lt;br&gt;commons-betwixt-0.8.zip&lt;br&gt;...

    Apache Commons 所有包最新版本 含SRC (5/7)

    commons-attributes-2.2-src.zip&lt;br&gt;commons-attributes-2.2.zip&lt;br&gt;commons-beanutils-1.8.0-BETA-src.zip&lt;br&gt;commons-beanutils-1.8.0-BETA.zip&lt;br&gt;commons-betwixt-0.8-src.zip&lt;br&gt;commons-betwixt-0.8.zip&lt;br&gt;...

    Apache Commons 所有包最新版本 含SRC (1/7)

    commons-attributes-2.2-src.zip&lt;br&gt;commons-attributes-2.2.zip&lt;br&gt;commons-beanutils-1.8.0-BETA-src.zip&lt;br&gt;commons-beanutils-1.8.0-BETA.zip&lt;br&gt;commons-betwixt-0.8-src.zip&lt;br&gt;commons-betwixt-0.8.zip&lt;br&gt;...

    Apache Commons 所有包最新版本 含SRC (3/7)

    commons-attributes-2.2-src.zip&lt;br&gt;commons-attributes-2.2.zip&lt;br&gt;commons-beanutils-1.8.0-BETA-src.zip&lt;br&gt;commons-beanutils-1.8.0-BETA.zip&lt;br&gt;commons-betwixt-0.8-src.zip&lt;br&gt;commons-betwixt-0.8.zip&lt;br&gt;...

    Apache Commons 所有包最新版本 含SRC (7/7)

    commons-attributes-2.2-src.zip&lt;br&gt;commons-attributes-2.2.zip&lt;br&gt;commons-beanutils-1.8.0-BETA-src.zip&lt;br&gt;commons-beanutils-1.8.0-BETA.zip&lt;br&gt;commons-betwixt-0.8-src.zip&lt;br&gt;commons-betwixt-0.8.zip&lt;br&gt;...

    aspose-words-15.8.0-jdk16.jar.rar

    添加依赖: &lt;dependency&gt; &lt;groupId&gt;com.itextpdf&lt;/groupId&gt; &lt;artifactId&gt;itext7-core... &lt;groupId&gt;org.apache.commons&lt;/groupId&gt; &lt;artifactId&gt;commons-io&lt;/artifactId&gt; &lt;version&gt;1.3.2&lt;/version&gt; &lt;/dependency&gt;

    Apache Commons 所有包最新版本 含SRC (4/7)

    commons-attributes-2.2-src.zip&lt;br&gt;commons-attributes-2.2.zip&lt;br&gt;commons-beanutils-1.8.0-BETA-src.zip&lt;br&gt;commons-beanutils-1.8.0-BETA.zip&lt;br&gt;commons-betwixt-0.8-src.zip&lt;br&gt;commons-betwixt-0.8.zip&lt;br&gt;...

    Apache Commons 所有包最新版本 含SRC (2/7)

    commons-attributes-2.2-src.zip&lt;br&gt;commons-attributes-2.2.zip&lt;br&gt;commons-beanutils-1.8.0-BETA-src.zip&lt;br&gt;commons-beanutils-1.8.0-BETA.zip&lt;br&gt;commons-betwixt-0.8-src.zip&lt;br&gt;commons-betwixt-0.8.zip&lt;br&gt;...

    client发送短信验证码(云之讯)

    &lt;artifactId&gt;commons-httpclient&lt;/artifactId&gt; &lt;version&gt;3.0&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;commons-lang&lt;/groupId&gt; &lt;artifactId&gt;commons-lang&lt;/artifactId&gt; &lt;version&gt;2.6&lt;/version&gt; &lt;/...

    基于springboot演示resuful api、mock请求、validate验证、异常捕捉、aop切面编程+源代码+文档说

    &lt;version&gt;${commons-lang3.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.projectlombok&lt;/groupId&gt; &lt;artifactId&gt;lombok&lt;/artifactId&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.spring...

    java实现poi 在线预览,excel,word直接在页面显示,附带文件上传,多文件上传

    &lt;artifactId&gt;commons-collections4&lt;/artifactId&gt; &lt;version&gt;4.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;artifactId&gt;poi&lt;/artifactId&gt; &lt;version&gt;3.17&lt;/version&gt; &lt;/...

    struts框架jar包

    struts-1.3.8 包(&lt;br&gt;&lt;br&gt;antlr-2.7.2.jar&lt;br&gt;bsf-2.3.0.jar&lt;br&gt;commons-beanutils-1.7.0.jar&lt;br&gt;commons-chain-1.1.jar&lt;br&gt;commons-digester-1.8.jar&lt;br&gt;commons-fileupload-1.1.1.jar&lt;br&gt;commons-io-1.1.jar&lt;br&gt;...

    Java 课程设计 高校公寓管理系统

    &lt;artifactId&gt;standard&lt;/artifactId&gt; &lt;version&gt;1.1.2&lt;/version&gt; &lt;artifactId&gt;jstl&lt;/artifactId&gt; ... &lt;artifactId&gt;commons-io&lt;/artifactId&gt; &lt;version&gt;2.11.0&lt;/version&gt; &lt;artifactId&gt;javax.servlet-api&lt;/artifactId&gt;

    Java 登录注册案例实例

    &lt;artifactId&gt;commons-io&lt;/artifactId&gt; &lt;version&gt;2.11.0&lt;/version&gt; &lt;artifactId&gt;mybatis&lt;/artifactId&gt; &lt;version&gt;3.5.5&lt;/version&gt; &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt; &lt;version&gt;8.0.28&lt;/version&gt; ...

    JSF与Shale开发用包

    其中包含:shale-core.jar&lt;br&gt;commons-beanutils.jar&lt;br&gt;commons-chain.jar&lt;br&gt;commons-codec.jar&lt;br&gt;commons-collections.jar&lt;br&gt;commons-digester.jar&lt;br&gt;commons-el.jar&lt;br&gt;commons-fileupload.jar&lt;br&gt;commons-...

    springcloud+springcloud alibaba完整学习项目

    &lt;module&gt;cloud-api-commons&lt;/module&gt; &lt;module&gt;cloud-eureka-server7001&lt;/module&gt; &lt;module&gt;cloud-eureka-server7002&lt;/module&gt; &lt;module&gt;cloud-comsumer-order80&lt;/module&gt; &lt;module&gt;cloud-provider-payment8001&lt;/...

    spring-hibernate-dwr实例

    collections-2.1.1.jar&lt;br&gt;commons-logging-1.0.4.jar&lt;br&gt;dom4j-1.6.1.jar&lt;br&gt;ehcache-1.1.jar&lt;br&gt;hibernate3.jar&lt;br&gt;jaas.jar&lt;br&gt;jaxen-1.1-beta-7.jar&lt;br&gt;jdbc2_0-stdext.jar&lt;br&gt;jta.jar&lt;br&gt;log4j-1.2.11.jar&lt;br&gt;...

    spring+struts+hibernate+dwr+jstl做的实例

    api.jar&lt;br&gt;jxl.jar&lt;br&gt;itext-1.3.jar&lt;br&gt;poi-2.5.1.jar&lt;br&gt;cos.jar&lt;br&gt;velocity-1.5.jar&lt;br&gt;velocity-tools-view-1.3.jar&lt;br&gt;commons-codec.jar&lt;br&gt;antlr.jar&lt;br&gt;commons-beanutils.jar&lt;br&gt;commons-digester.jar&lt;br...

    ssm的jar包

    ssm在maven项目管理下的pom文件,jar包依赖 &lt;dependency&gt; &lt;groupId&gt;javax.servlet&lt;/groupId&gt; &lt;artifactId&gt;javax.servlet-api&lt;/artifactId&gt; ... &lt;artifactId&gt;commons-codec&lt;/artifactId&gt; &lt;version&gt;1.10&lt;/ver

    commons-io等jar

    cog-jglobus-1.2.jar&lt;br&gt;cog-karajan-0.23.jar&lt;br&gt;cog-resources-1.0.jar&lt;br&gt;我所收集的一些jar包,其中包含:&lt;br&gt;cog-tomcat.jar&lt;br&gt;cog-util-0.91.jar&lt;br&gt;commons-io-1.3.1.jar&lt;br&gt;cryptix.jar&lt;br&gt;cryptix32.jar&lt;br&gt;...

Global site tag (gtag.js) - Google Analytics