原文地址:http://baike.xsoftlab.net/view/208.html

1用法

ArrayList

Java | 复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

Java | 复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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());
}

2排序

数字排序

Java | 复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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);
    }
}

中文排序

Java | 复制
1
2
3
4
5
6
7
8
9
10
11
12
13
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);
    }
}

实体类排序

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
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;
    }
}

3遍历

三种遍历方法

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) {
    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());
    }
}

遍历时移除元素

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
package net.xsoftlab.baike;
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);
    }
}

Java list的用法排序及遍历的更多相关文章

  1. JAVA中ArrayList用法

    JAVA中ArrayList用法 2011-07-20 15:02:03|  分类: 计算机专业 |  标签:java  arraylist用法  |举报|字号 订阅     Java学习过程中做题时 ...

  2. Java基础-数组常见排序方式

    Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特 ...

  3. Java实现各种内部排序算法

    数据结构中常见的内部排序算法: 插入排序:直接插入排序.折半插入排序.希尔排序 交换排序:冒泡排序.快速排序 选择排序:简单选择排序.堆排序 归并排序.基数排序.计数排序 直接插入排序: 思想:每次将 ...

  4. Java NIO.2 使用Files类遍历文件夹

    在以前的Java版本中,如果要遍历某个文件夹下所有的子文件.子文件夹,需要我们自己写递归,很麻烦. 在Java7以后,我们可以NIO.2中的Files工具类来遍历某个文件夹(会自动递归). 大致用法: ...

  5. Java 的八种排序算法

    Java 的八种排序算法 这个世界,需要遗忘的太多. 背景:工作三年,算法一问三不知. 一.八种排序算法 直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序和基数排序. 二.算 ...

  6. JAVA的continue用法

    JAVA的continue用法: public class test{ public static void main(String [] args){  for(int i=0;i<=10;i ...

  7. Java Spring AOP用法

    Java Spring AOP用法 Spring AOP Java web 环境搭建 Java web 项目搭建 Java Spring IOC用法 spring提供了两个核心功能,一个是IoC(控制 ...

  8. Java Spring IOC用法

    Java Spring IOC用法 Spring IoC 在前两篇文章中,我们讲了java web环境搭建 和 java web项目搭建,现在看下spring ioc在java中的运用,开发工具为In ...

  9. java for 的用法总结

    J2SE 1.5提供了另一种形式的for循环.借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象.本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类 ...

随机推荐

  1. 纸上谈兵:排序算法简介及C实现

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 排序算法(Sorting Algorithm)是计算机算法的一个组成部分. 排序的 ...

  2. webForm中dropDownList的一些用法

    DropDownList 控件用于创建下拉列表. DropDownList 控件中的每个可选项都是由 ListItem 元素定义的! 该控件支持数据绑定! DropDownList1.DataSour ...

  3. php json_encode中文unicode问题

    php调用json_encode将中文字符串存入mysql后读取出来有问题,发现存进去的时候把'\'给去掉了.解决方法是调用json_encode时候后面加JSON_UNESCAPED_UNICODE ...

  4. VC++中操作XML(MFC、SDK)转

    [转]VC++中操作XML(MFC.SDK) XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini.VC++ ...

  5. xfire webServeic 例子

    xfire webServeic 例子,参考网上众多例子,自己写得完成了,给大家分享 大家只要按这个目录去建文件就可以了,然后运行,至于其中原理慢慢理会吧 环境:myeclipse 10 +xfire ...

  6. python计算机视觉——黑板客老师课程学习

    机器学习的一个应用方向,是如何让机器去理解图像.包括对图像里物体的识别,跟踪和测量. 能做什么——无人驾驶汽车.人脸识别.车牌识别手势识别(游戏方向) PIL静态的库 OpenCV 动态的库 impo ...

  7. jquery 找不到live方法解决

    http://stackoverflow.com/questions/15573645/typeerror-live-is-not-a-function

  8. C++(MFC)中WebBrowser去除3D边框的方法(实现IDocHostUIHandler接口)控制 WebBrowser 控件的外观和行为

    在 CSDN 上经常看到以下两个问题:1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 CHtmlView 在内),如何可以把该控件的三维边框禁止掉?2.在 MFC 应用程 ...

  9. push

    1:收到通知的那一刻,app的状态可能是未启动,前台以及后台 如果未启动,等待点击app的时候进行界面跳转的时候接收到通知(didFinishLaunchngWithOPtions) 如果是前台以及后 ...

  10. Linux系统编程-防止僵尸进程产生的常用方法

    1.父进程调用wait函数或waitpid函数回收子进程. 2.让init进程去处理子进程回收工作,代码中加上"signal(SIGCHLD, SIG_IGN)"这句话.