程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> jakata commons常用類與方法

jakata commons常用類與方法

編輯:關於JAVA
 

基本

  • toString
    • ToStringBuilder, ToStringStyle
  • hashCode
    • HashCodeBuilder:參數奇數,素數
  • equals
    • EqualsBuilder:最好使用能唯一標示的字段
  • compareTo
    • CompareToBuilder:參數比較順序類似棧,後加的先比較

 

數組

  • 打印數組
    • ArrayUtils.toString(array);ArrayUtils.toString(list.toArray())
  • 復制數組與翻轉數組
    • ArrayUtils.clone(array) ArrayUtils.reverse(array);jdk的數組實現的clone方法也可以復制數組只是大家都不會去注意,int a[]={1,2};int b[]=(int[])a.clone();jdk的Collections.reverse()可以實現list的翻轉
  • 原生類型與包裝類型數組的轉換
    • ArrayUtils.toObject(array), ArrayUtils.toPrimitive(array);結合Arrays.asList()與List.toArray()使用
  • 數組元素的查找
    • ArrayUtils.contains(array, value), ArrayUtils.indexOf(array, value), ArrayUtils.lastIndexOf(array, value)
  • 二維數組向Map轉換
    • ArrayUtils.toMap(array)

格式化日期

  • DateFormatUtils(使用FastDateFormat格式化日期,線程安全)
    • round日期
    • DateUtils.round(date, Calendar.**):最接近date的日期
  • truncate日期
    • DateUtils.truncate(date, Calendar.**):將日期截斷到指定的

生成一個Unique ID

  • IdentifierUtils, IdentifierFactory;首先通過IdenfifierUtils獲取一個IdentifierFactory,然後通過IdentifierFactory產生唯一標識。

文本處理(StringUtils 與WordUtils)

  • 檢查字符串是否為空
    • StringUtils.isBlank(str),StringUtils.isNotBlank(str)
  • 簡略字符串
    • StringUtils.abbreviate(str)
  • 切分字符串
    • StringUtils.split(str)
  • 獲取字符串之間的內容
    • StringUtils.substringBetween(str, start, end)
  • trim與strip
    • StringUtils.trim(str), StringUtils.trimToNull(str)
  • chomp
    • StringUtils.chomp(str)
  • 字符串強調,格式
    • StringUtils.repeat(), StringUtils.center(), StringUtils.join()
  • 翻轉字符串
    • StringUtils.reverse(), StringUtils.reverseDelimited()
  • 折疊字符串
    • WordUtils.wrapTest(), WordUtils.wrap()
  • 測試字符串的內容
    • StringUtils.isNumeric(), StringUtils.isAlpha(), StringUtils.isAlphanumeric(), StringUtils.isAlphaspace(),StringUtils.isAlphanumbericSpace()
  • 檢查字符串的次數
    • StringUtils.countMatches()
  • 解析格式化的字符串
    • StringUtils.substringBetween(), StringUtils.substringAfter(), StringUtils.substringBefore(),StringUtils.substringBeforeLast(), StringUtils.substringAfterLast()
  • 計算字符串的編輯距離
    • StringUtils.getLevenshteinDistance(), StringUtils.difference(), StringUtils.indexOfDifference()

字符編碼

  • Base64, Hex, SoundEx

JavaBean操作

  • 獲取Bean的簡單屬性
    • PropertyUtils.getSimpleProperty()
  • 獲取Bean的屬性的屬性
    • PropertyUtils.getNestedProperty()
  • 獲取帶索引的屬性
    • PropertyUtils.getIndexedProperty()
  • 獲取Map屬性
    • PropertyUtils.getMappedProperty()
  • 綜合訪問所有屬性
    • PropertyUtils.getProperty( country, “regions[0].cities(richmond).population” );
  • 獲取屬性的類型
    • PropertyUtils.getPropertyType(), PropertyUtils.getPropertyDescriptor(), PropertyDescriptor.getProtertyType(), PropertyDescroptor.getWriteMethod(), PropertyDescriptor.getReadMethod()
  • Bean之間的比較
    • BeanComparator(String property)
  • 拷貝Bean的屬性
    • PropertyUtils.copyProperties()
  • 克隆Bean
    • BeanUtils.cloneBean()
  • 為Bean的屬性賦值
    • PropertyUtils.setProperty()
  • 判斷屬性是否可讀或可寫
    • PropertyUtils.isReadable(), PropertyUtils.isWritable()
  • 使用Predicate判斷Bean是否滿足條件
    • BeanPredicate(),
  • 將Bean的屬性轉換為Map
    • PropertyUtils.describe()
  • 將Bean的屬性信息轉換到Map中
    • BeanMap(bean), BeanMap.get(), BeanMap.getType()
  • 將Bean的屬性轉換為字符串或通過字符串為其設置值
    • BeanUtils.getProperty(), BeanUtils.setProperty()

算子

  • 逆序比較器
    • ReverseComparator()
  • 比較器鏈
    • ComparatorChain(), ComparatorChain.addComparator()
  • 空比較器
    • NullComparator()
  • 固定順序的比較器
    • FixedOrderComparator()
  • 簡單謂詞
    • EqualPredicate(), InstanceofPredicate(), IdentityPredicate(), NotPredicate(),NullPredicateNullIsTruePredicate(), NotNullPredicateNullIsFalsePredicate(), TruePredicate(), FalsePredicate(), UniquePredicate()
  • 自定義謂詞
    • 實現Predicate接口
  • 創建復合謂詞
    • AndPredicate(),OrPredicate(), AllPredicate(), OnePredicate(), AnyPredicate(), NonePredicate()
  • 轉換對象
    • 實現Transformer接口
  • 轉換鏈
    • ChainedTransformer()
  • 依賴於謂詞的轉換
    • SwitchTransformer(predicateArray, transformerArray, NOPTransformer())
  • 執行器
    • 實現Closure接口
  • 執行器鏈
    • ChainedClosure()
  • 帶有條件的執行器
    • IfClosure(predicate, yesClosure, noClosure)
  • 循環執行器
    • WhileClosure(predicate, closure), ForClosure(counter, closure)

集合

  • 無限循環迭代器
    • LoopingIterator()
  • ArrayList迭代器
    • ArrayListIterator()
  • 使用謂詞過濾集合數據
    • FilterIterator(iterator, predicate),CollectionUtils.filter(list, predicate)會修改list留下過濾後的內容,CollectionUtil.select()以及CollectionUtil.selectRejected()不會修改原來數據會返回一個新的集合
  • 遍歷集合去重
    • UniqueFilterIterator(iterator) = FilterIterator(interator, UniquePredicate)
  • 記錄對象出現次數
    • Bag(object, counter), HashBag, TreeBag->維護對象添加的次序
  • 緩沖
    • Buffer[add, remove], UnbounededFifoBuffer, BoundedFifoBuffer
  • 優先隊列
    • 使用PriorityBuffer(),可以添加comparator來實現比較
  • 實現阻塞的緩沖區
    • BlockingBuffer.decorate(BoundedFifoBuffer),
  • 一個鍵對應多個值
    • MultiMap()
  • 通過key獲取value,通過value獲取key
    • BidiMap, DualHashBidiMap->兩個HashMap, DualTreeBidiMap->兩個TreeMap, TreeBidiMap->紅黑樹
  • key是字符串,忽略大小寫
    • CaseInsensitiveMap()
  • 限制List與Map的類型
    • TypedCollection.decorate(list, String.class), TypedMap.decorate(map, String.class, Number.class);
  • 使用謂詞限制Map的key和value
    • PredicatedMap.decorate(new HashMap(), keyPredicate, valuePredicate)
  • 使用謂詞限制List的內容
    • PredicatedList.decorate(list, predicate)
  • **使用Predicate限制容器內容的裝飾器
    • PredicatedBag, PredicatedBuffer, PredicatedCollection, PredicatedList, PredicatedMap,PredicatedSet, PredicatedSortedBag, PredicatedSortedBag, PredicatedSortedMap, PredicatedSortedSet
  • 使用Transformer變換容器中的內容
    • CollectionUtils.transform(collection, transformer), CollectionUtils.transform(colleciton, transformerChain)
  • ** 創建一個LeastRecentlyUsed緩存**
    • LRUMap()
  • 當key被請求時才將value放入Map
    • LazyMap.decorate(map, transformer):key被請求時會調用transformer,transformer的返回值會作為value放入map
  • 計算一個集合中元素出現的次數
    • CollectionUtils.countMatches(collection, predicate), CollectionUtils.cardinality(object, collection), CollectionUtils.getCardinalityMap(collection):返回一個集合中元素出現次數的Map
  • 對集合操作
    • CollecitonUtils.union(), CollectionUtils.intersection(), CollectionUtils.disjunction(), CollectionUtils.subtract()
  • 從Map中獲取值不經過轉換
    • MapUtils.getBoolean(), MapUtils.getBooleanValue(), MapUtils.getDouble(), MapUtils.getDoubleValue(), MapUtils.getNumber()

XML

  • 操作xml
    • Digester

應用程序結構

  • 解析命令行參數
    • CommandLineParser, Option, CommandLine, OptionGroup, OptionBuilder, HelpFormatter
  • 解析配置文件
    • Configuration, PropertitiesConfiguration, DOMConfiguration
  • 復合配置文件
    • ConfigurationFactory

Math包

  • 分數
    • Fraction
  • 獲取數組最大最小值
    • NumberUtils.max(array), Max.evaluate(), Min.evaluate()
  • 數據范圍
    • DoubleRange, FloatRange, IntRange, LongRange, NumberRange
  • 隨機數
    • RandomUtils.nextInt(), RandomUtils.nextLong(), RandomUtils.nextBoolean()
  • 統計數組的最大,最小,平均,內積,和等
    • StatUtils.max(),StatUtils.min(), StatUtils.mean(), StatUtils.product(), StatUtils.sum();除了使用StatUtils之外,還可以直接使用類Max, Min, Mean, Product, Sum, Percentile, GeometricMean, Skewness, Kurtosis
  • 解線性方程
    • RealMatrix
  • 復數
    • Complex, ComplexFormat
  • 求解變量之間的關系
    • SimpleRegression

模版

  • commons-jexl包

IO與網絡

  • 復制流數據
    • CopyUtils.copy(inputStream, outputStream), IOUtils.toString(inputStream)
  • 關閉流
    • IOUtils.closeQuietly(stream)
  • 更容易閱讀的文件大小
    • FileUtils.byteCountToDisplaySize(bytes)
  • 復制文件,字符串,URL內容到文件
    • FileUtils.copyFile(src, dest), FileUtils.copyFileToDirectory(src, dir), FileUtils.writeStringToFile(dest, string, ?), FileUtils.copyURLToFile(src, dest)
  • 刪除目錄
    • FileUtils.deleteDirectory(dir), FileUtils.cleanDirectory(dir)
  • 獲得文件夾大小
    • FileUtils.sizeOfDirectory()
  • touch一個文件
    • FilteUtils.touch(file)
  • 過濾文件
    • FilenameFilter, SuffixFileFilter, IOFileFilter, OrFileFilter, NotFileFilter, AndFileFilter
  • 統計流讀入與寫出的比特數
    • CountingOuputStream(stream), CountingInputStream(stream)
  • 將一個流的數據寫入兩個不同的輸出
    • TeeOuputStream(ouputStream1, outputStream2)
  • 使用oro利用globs與正則過濾文件
    • GlobFilenameFilter(“.xml”),Perl5FilenameFilter(“^dev..tld$”)
  • 使用net包
    • FTPClient, SMTPClient, POP3Client

Http與WebDAV

  • 執行HTTP的GET方法 
    HttpClient client = new HttpClient( );
    String url = "http://www.discursive.com/jccook/";
    HttpMethod method = new GetMethod( url );
    try {
    client.executeMethod( method );
    if( method.getStatusCode( ) == HttpStatus.SC_OK ) {
    String response = method.getResponseBodyAsString( );
    System.out.println( response );
    }
    } catch( HttpException he ) {
    System.out.println( "HTTP Problem: " + he.getMessage( ) );
    } catch( IOException ioe ) {
    System.out.println( "IO Exeception: " + ioe.getMessage( ) );
    } finally {
    method.releaseConnection( );
    method.recycle( );
    }
  • 添加參數
    method.setQueryString(URIUtil.encodeQuery(“”));參數較多可以使用NameValuePair
    獲取內容
    method.retResponseHeader()
    調試HTTP連接
    String logging = "org.apache.commons.logging";
    // Configure Logging
    System.setProperty(logging + ".Log", logging + ".impl.SimpleLog");
    System.setProperty(logging + ".logging.simplelog.showdatetime", "true");
    System.setProperty(logging + ".simplelog.log.httpclient.wire", "debug");
    System.setProperty(logging + ".simplelog.log.org.apache.commons.httpclient", "debug");
  • 發送POST請求
      • PostMethod, PostMethod.addParameter(), method.getResponseBodyAsString()

      搜索與過濾

      • commons-jxpath,lucene包

       

  • 將文件內容通過POST請求發送出去
    • postMethod.setRequestBody(new FileInputStream(file)), postMethod.setRequestContentLength((int)file.length());
  • 發送文件
    • MultipartPostMethod.addParameter(), MultipartPostMethod.addPart()
  • 基本認證
    • HttpState
  • NTLM認證
    • Credentials, NTCredentials
  • Cookie
    • Cookie()
  • 重定向
    • method.setFollowRedirects( true );
  • SSL
    • GetMethod自動處理
  • 處理簽名證書
    • ProtocolSocketFactory, EasySSLProtocolSocketFactory, Protocol
  • WebDAV資源
    • UsernamePasswordCredentials, WebdavResource
  • 修改WebDAV資源
    • resource.lockMethod,resource.unlockMethod
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved