欢迎光临小站,愿能为您提供帮助与启发,热爱分享、享受分享、乐于分享,让我们携手共同进步。
Java list的用法排序及遍历
java list 排序 java list用法 Java list java list 遍历
概要:List中可以添加任何对象,包括自己定义的新的类。Map 的常用实现类有:ArrayList 和 LinkedList。
下面是Java list的用法排序及遍历
| |目录
1Java List用法 - ArrayList
[Java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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(); } |
2Java List用法 - LinkedList
[Java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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()); } |
3Java List 排序 - 数字排序
[Java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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); } } |
4Java List 排序 - 中文排序
[Java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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); } } |
5Java List 排序 - 实体类排序
[Java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | package net.xsoftlab.dict; 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; } } |
6Java List 遍历
[Java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public static void main(String[] args) { List<String> list = new ArrayList<String>(); // 插入元素 list.add( "list1" ); list.add( "list2" ); list.add( "list3" ); System.out.println( "第一种遍历方法 - >" ); for (String str : list) { System.out.println(str); } System.out.println( "第二种遍历方法 - >" ); for ( int i = 0 ; i < list.size(); i++) { System.out.println(list.get(i)); } System.out.println( "第三种遍历方法 - >" ); Iterator<String> iter = list.iterator(); while (iter.hasNext()) { System.out.println(iter.next()); } } |
7Java List 遍历时移除元素
[Java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | package net.xsoftlab.dict; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class RemoveItemFromList { public static void main(String[] args) { List<String> list = new ArrayList<String>(); // 插入元素 list.add( "list1" ); list.add( "list2" ); list.add( "list2" ); list.add( "list3" ); // 实例化新的list防止因传递地址而达不到测试效果。 remove1( new ArrayList<String>(list)); remove2( new ArrayList<String>(list)); remove2_1( new ArrayList<String>(list)); remove3( new ArrayList<String>(list)); } public static void remove1(List<String> list) { System.out.print( "第一种方法 - > " ); try { for (String str : list) { if (str.equals( "list2" )) list.remove(str); } } catch (Exception e) { System.out.println( "移除失败!" ); } } public static void remove2(List<String> list) { System.out.print( "第二种方法 - > " ); for ( int i = 0 ; i < list.size(); i++) { String str = list.get(i); if (str.equals( "list2" )) list.remove(str); } System.out.println(list); System.out.println( "也有异常,可以用下面的方法避免。" ); } public static void remove2_1(List<String> list) { System.out.print( "第二种方法修正 - > " ); for ( int i = 0 ; i < list.size(); i++) { String str = list.get(i); if (str.equals( "list2" )) { list.remove(str); // 因移除了元素,位置发生偏移,需要重新对当前位置的元素进行判断。 i--; } } System.out.println(list); } public static void remove3(List<String> list) { System.out.print( "第三种方法 - > " ); Iterator<String> iter = list.iterator(); while (iter.hasNext()) { String str = iter.next(); if (str.equals( "list2" )) iter.remove(); } System.out.println(list); } }
|