1. 程式人生 > >java中一些經常用到的小方法

java中一些經常用到的小方法

1.java中如何把字元陣列轉化成字串,並以逗號分割
方法1、需要引入Apache Commons元件中的個commons-lang.jar包:
String str1=StringUtils.join(ary, “,”);
方法2、格式化
String str2 = String.format(“%s,%s,%s”, ary);

String wareIds = StringUtils.join(s, “,”);
List wareIdAry = Arrays.asList(wareIds.split(“,”));

2.hashmap 和hashset是無序的,treemap和treeset是有序的,對於無序的遍歷,只能用增強的for迴圈foreach或者iterator方法

3.List裡面不要進行remove操作,否則會出越界的錯誤

不要在 foreach 迴圈裡進行元素的 remove/add 操作。remove 元素請使用 Iterator 方式,如果併發操作,需要對 Iterator 物件加鎖。
反例:
List<String> a = new ArrayList<String>(); 
 a.add("1");
 a.add("2");
 for (String temp : a) {
     if ("1".equals(temp)) { 
         a.remove(temp);
     } 
 }

正確:

Iterator<String> it = a.iterator(); 
 while (it.hasNext()) {
     String temp = it.next(); 
     if (刪除元素的條件) {
         it.remove();
     }
 }

4.classpath 和 classpath* 區別:
classpath:只會到你的class路徑中查詢找檔案;
classpath*:不僅包含class路徑,還包括jar檔案中(class路徑)進行查詢.

5.BigDecimal和BigDecimalFormat
bigdecimalFormat可以把object型別的字數,格式化為具體保留幾位小數精度的數字

   Map<String, Object> wareInfoMap = wareInfoList.get(i);
  DecimalFormat df = new DecimalFormat("0.000");
  wareInfoMap.put("weight", df.format(wareInfoMap.get("weight")));

結果將是保留三位小數的字串

bigDecimal 四捨五入並保留兩位小數:
String jsonData = “5.43”;
BigDecimal mallBalance = new BigDecimal(jsonData).setScale(2,BigDecimal.ROUND_HALF_DOWN);

6.Controller方法ajax返回時,如果用fastjson的 JSONObject.toJSONString( )方法把資料轉成String型別傳輸,那麼requestMapping裡要加produces = “text/html;charset=UTF-8”,否則會出現中文亂碼

7.maven專案更新依賴時突然報錯
錯誤描述:

An internal error occurred during: “Updating Maven Project”.
java.lang.NullPointerException
解決方法:

刪除.setting .project目錄,重新更新依賴或匯入即可。