基本介紹
- 中文名:java列表
- 外文名:java list
- 性質:java的一種集合
- 特點:以線性存儲,可重複
- 套用範圍:java語言編程
- 套用學科:電腦程式設計
用法
ArrayList
public static void main(String[] args) { // ArrayList類實現一個可增長的動態數組 List<String> list = new ArrayList<String>(); // 插入元素 list.add("list1"); list.add("list2"); // 列印list的大小 System.out.println(list.size()); // 按索引移除元素 list.remove(0); // 按對象移除元素 list.remove("list2"); // 列印list的大小 System.out.println(list.size()); // 清空list list.clear();}
LinkedList
public static void main(String[] args) { // LinkedList類實現了鍊表,可初始化化為空或者已存在的集合 LinkedList<String> list = new LinkedList<String>(); // 插入元素 list.add("list2"); list.add("list3"); // 向鍊表頭插入數據 list.addFirst("list1"); // 向鍊表尾插入數據 list.addLast("list4"); for (String str : list) { System.out.println(str); } // 獲取鍊表頭數據 System.out.println("鍊表頭數據:" + list.getFirst()); // 獲取鍊表尾數據 System.out.println("鍊表尾數據:" + list.getLast());}
排序方法
數字排序
public static void main(String[] args) { // 創建list List<Integer> list = new ArrayList<Integer>(); // 插入元素 list.add(2); list.add(0); list.add(3); list.add(4); list.add(1); Collections.sort(list); for (int i : list) { System.out.println(i); }}
中文排序
public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("一鳴驚人-Y"); list.add("人山人海-R"); list.add("海闊天空-H"); list.add("空前絕後-K"); list.add("後來居上-H"); Comparator<Object> cmp = Collator.getInstance(java.util.Locale.CHINA); Collections.sort(list, cmp); for (String str : list) { System.out.println(str); }}
實體類排序
package net.xsoftlab.baike;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class TextList { public static void main(String[] args) { List<User> userlist = new ArrayList<User>(); userlist.add(new User("Y - 易小星 ", 33)); userlist.add(new User("W - 王大錘", 33)); Comparator<User> cmp = new ComparatorUser(); Collections.sort(userlist, cmp); for (User user : userlist) { System.out.println(user.getName()); } }}class ComparatorUser implements Comparator<User> { @Override public int compare(User u1, User u2) { // 先按年齡排序 int flag = u1.getAge().compareTo(u2.getAge()); // 年齡相等比較姓名 if (flag == 0) { return u1.getName().compareTo(u2.getName()); } else { return flag; } }}class User { private String name; private Integer age; public User() { super(); } public User(String name, Integer age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; }}
三種遍歷方法
超級for循環遍歷:
for(String attribute : list) { System.out.println(attribute); }
對於ArrayList來說速度比較快,用for循環,以size為條件遍歷:
for(int i = 0 ; i < list.size() ; i++){ system.out.println(list.get(i)); }
集合類的通用遍歷方式,從很早的版本就有,用疊代器疊代:
Iterator it = list.iterator(); while(it.hasNext()) { System.ou.println(it.next); }