【R語言】用gbm包來提升決策樹能力
阿新 • • 發佈:2022-05-04
List介面
特點:有序、有下標、可重複
方法
除了繼承Collection介面的方法,List還有自己的方法
List的方法相比Collection添加了下標相關的方法,新增、刪除、獲取下標、獲取資料、列表迭代器等
void add(int index, Object o) //在index位置插入物件 boolean addAll(int index, Collection c) //將一個集合中的元素新增到此集合中的index位置 Object get(int index) // 返回集合中指定的位置的元素 List subList(int fromIndex, int toIndex) // 返回fromIndex到toIndex之間的元素集合 int indexOf(Object o) // 返回此列表中指定元素的第一次出現的索引,如果此列表不包含元素,則返回-1 ListIterator<E> listIterator() // 返回列表中的列表迭代器(按適當的順序) ListIterator<E> listIterator(int index) // 從列表中的指定位置開始,返回列表中的元素(按正確順序)的列表迭代器 E remove(int index) // 刪除該列表中指定位置的元素(可選操作)。
實踐
Demo1
package com.qianfeng; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; /** * List新增、刪除、遍歷、判斷和獲取 * * @since 2022-05-06 */ public class ListDemo { public static void main(String[] args) { List li = new ArrayList<>(); // 新增元素 li.add("蘋果"); li.add("三星"); li.add("小米"); li.add("華為"); // 刪除元素 // li.remove("三星"); li.remove(0); // 遍歷 // 由於List繼承於Collection,所以可以使用增強for迴圈遍歷 System.out.println("===============使用增強for迴圈遍歷=================="); for (Object o : li) { System.out.println(o.toString()); } // 由於List有下標,所以可以使用for迴圈遍歷 System.out.println("===============使用for迴圈遍歷=================="); for (int i = 0; i < li.size(); i++) { System.out.println(li.get(i)); } // 由於List繼承於Collection,所以可以使用迭代器遍歷 System.out.println("===============使用迭代器遍歷=================="); Iterator it = li.iterator(); while (it.hasNext()) { System.out.println(it.next()); } // List有列表迭代器,可以實現雙向遍歷、新增、刪除、更新等操作 System.out.println("===============使用列表迭代器遍歷=================="); ListIterator lit = li.listIterator(); while (lit.hasNext()) { System.out.println(lit.nextIndex() + ":" + lit.next()); } while (lit.hasPrevious()) { System.out.println(lit.previousIndex() + ":" + lit.previous()); } // 判斷 System.out.println(li.contains("索尼")); System.out.println(li.isEmpty()); // 獲取 System.out.println(li.indexOf("華為")); } }
Demo2 數值列表
package com.qianfeng; import java.util.ArrayList; import java.util.List; /** * 數值List新增刪除 * * @since 2022-05-06 */ public class ListDemo2 { public static void main(String[] args) { List list = new ArrayList<>(); // 新增元素 list.add(10); list.add(180); list.add(20); list.add(30); System.out.println(list); // 刪除元素 // list.remove(0); // 這裡直接刪除180會報錯,可採用如下兩種方式,可以採用new的原因是remove中有一個equals的比較,Integer的equals方法就是比較值 list.remove(new Integer(180)); // list.remove(list.indexOf(180)); System.out.println(list); // 取子列表,左閉右開 System.out.println(list.subList(1, 3)); } }