一、使用普通的for循環進行轉換
public List convert(int[] arr) { List list = new ArrayList(); for(int i = 0; i < arr.length; i++) { list.add(arr[i]); } return list; }
上述代碼中,我們使用普通的for循環進行數組元素的遍歷,並通過add()方法將每個元素加入到List中,最終返回List。這種方式的好處是代碼簡潔易懂,易於理解。
缺點是需要手動編寫循環邏輯,代碼量相對較大,容易出錯。如果數組長度較大,時間複雜度也較高。
二、使用增強for循環進行轉換
public List convert(int[] arr) { List list = new ArrayList(); for(int num: arr) { list.add(num); } return list; }
上述代碼使用增強for循環遍歷整個數組,代碼相對簡潔,容易理解。
缺點是沒法對循環進行控制,無法實現跳過和退出功能。如果需要對數組的元素做特定的操作,只能使用普通的for循環。
三、使用Java 8的Stream進行轉換
public List convert(int[] arr) { return Arrays.stream(arr) .boxed() .collect(Collectors.toList()); }
上述代碼使用Java 8的Stream進行數組轉換,代碼清晰簡潔。
缺點是需要掌握Java 8的Stream編程,並且在數組長度較大的情況下,Stream的性能不如for循環。
四、使用Java 8的Arrays.asList()方法
public List convert(int[] arr) { List list = new ArrayList(arr.length); for(Integer num: Arrays.asList(arr)) { list.add(num); } return list; }
上述代碼使用Arrays類中的asList()方法將int數組轉換成List類型,然後遍歷該List類型的數據。
缺點是在運行時會拋出UnsupportedOperationException異常,因為asList()方法返回的是Arrays類中的靜態內部類ArrayList,並非java.util.ArrayList,其內部實現並沒有重寫add()和remove()等方法。
五、使用Java 8的IntStream將int數組轉為List
public List convert(int[] arr) { return IntStream.of(arr) .boxed() .collect(Collectors.toList()); }
上述代碼利用Java 8 的IntStream將int數組轉換成List類型。
缺點在於,由於該方法使用了Java 8的IntStream,不適用於Java 7及以下版本,也不適合轉換長數組。
六、使用Google Guava庫將int數組轉為List
public List convert(int[] arr) { return Ints.asList(arr); }
上述代碼引入Google Guava庫對int數組進行List轉換,代碼簡潔優美。
缺點是需要引入第三方庫,編號冗餘。如果程序本身並未引入Guava庫,就需要新增庫的引用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/194039.html