- 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.**):將日期截斷到指定的
- IdentifierUtils, IdentifierFactory;首先通過IdenfifierUtils獲取一個IdentifierFactory,然後通過IdentifierFactory產生唯一標識。
- 檢查字符串是否為空
- 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
- 獲取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
- Digester
- 解析命令行參數
- CommandLineParser, Option, CommandLine, OptionGroup, OptionBuilder, HelpFormatter
- 解析配置文件
- Configuration, PropertitiesConfiguration, DOMConfiguration
- 復合配置文件
- ConfigurationFactory
- 分數
- 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包
- 復制流數據
- 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的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包