list接口

原创 2016年06月01日 16:16:43

list接口继承了Collection接口来定义一个允许重复项的有序集合。List接口大量的扩充了Collection接口的操作。该接口能对列表的一部分进行操作,而且还添加了面向位置的操作,比如添加元素add(int index,Object element)、移除元素remove(int index)等。

List接口的特点:1.集合中的元素可以重复;2.元素顺序是有序的,即放进去的顺序和获取元素的顺序是一致的

List接口的常用子类ArrayList、LinkList、Vector
1.ArrayList:通过面向对象的多态性为List接口实例化。内部用数组实现。

//创建一个ArrayList的集合,泛型为Student
   List<Student> list = new ArrayList<Student>();

向集合中添加元素

 Student stu1 = new Student("张三",14);//创建一个Student对象
    list.add(stu1);

遍历list集合中的元素(方法一)

for(int i=0;i<list.size();i++){
            Student s = list.get(i);//获取集合中第i个位置的元素
            System.out.println(s.getName());
        }

遍历list集合中的元素(方法二):for each循环

for(Student stu:list){
            System.out.println(stu.getName());
        }

遍历list集合中的元素(方法三):iterator循环

Iterator<Student> it= list.iterator();
        while(it.hasNext()){//如果有下一个元素,就将它打印出来
            System.out.println(it.next().getName());
        }

List集合中元素的排序
将集合中的学生进行排序时,必须要指定一个裁判来制定规则,因为学生是一个对象,没有可比性,只能根据它拥有的属性来比较进行排序。这个裁判由Comparator来充当,重写其中的compare方法。

Collections.sort(list,new Comparator<Student>(){
            @Override
            public int compare(Student arg0, Student arg1) {
                // TODO Auto-generated method stub
                return arg1.getAge()-arg0.getAge();
            }
        });

通过上面的排序操作,集合就会按照学生的年龄进行排序。
因为compare方法的返回值为int型,如果比较的两个元素是double型或String型,就需要用各自包装类的compareTo方法。例如按学生的姓氏进行排列时:


                return arg1.getName().compareTo(arg0.getName());

对compare方法的解释:
按照升序排序时:如果arg<0arg1,返回-1;相等返回0;arg0>arg1,返回1。
按照降序排序时:如果arg<0arg1,返回1,相等返回0;arg0>arg1,返回-1。

ArrayList和LinkList的区别:
ArrayList是基于数组的集合,查找快,因为LinkList需要移动指针从一端一个一个查,浪费时间。
LinkList是链表结构的集合,插入删除快,因为在ArrayList中插入或删除元素时后面的元素都要移动,浪费时间。

ArrayList和Vector的区别:
Vector支持线程的同步,即同一时间内只允许一个线程使用Vector,线程安全但是效率低。
ArrayList线程不安全但是效率高。

Java类集_List接口

  • 2016年02月28日 12:40
  • 280KB
  • 下载

(Java笔记)List接口及其实现类---ArrayList

List的用法 List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是...

set.list.map接口

  • 2012年03月29日 22:43
  • 18KB
  • 下载

List,Set,Map三种接口的区别

set --其中的值不允许重复,无序的数据结构  list   --其中的值允许重复,因为其为有序的数据结构  map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换)  ...

java集合(Collection接口下的 List、Set 深入理解)

什么是java集合? 1、java集合大致分为Set、List、Queue、Map四种体系。      Set表示无序、不可重复的集合;      List代表有序重复的集合;      Ma...

List Set Map以及子接口用法总结

Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap ...

Java类集--List接口

Collection下分为很多的子接口,其中有一个List接口,List接口中可以存放任意的数据。而且在List接口中内容是允许重复的。List接口的功能要比Collection接口强大很多,因为大量...
  • waldmer
  • waldmer
  • 2013年11月20日 09:06
  • 5419

LIST接口及其子类

1.LIST接口及其子类概述区别 2.链表:增删快,查询慢。 数组:增删慢,查询快。 3.并发修改异常的产生及修改方法 4.删除ARRAYLIST中重复的元素 4.1改进版 ...
  • zzzxzzv
  • zzzxzzv
  • 2015年09月16日 16:43
  • 128
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:list接口
举报原因:
原因补充:

(最多只允许输入30个字)