黑马程序员——java集合框架——List接口

来源:互联网 发布:手机淘宝我的分享 编辑:程序博客网 时间:2024/06/04 19:55
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


java集合框架——List

简介:集合框架:一组专门用来存储其他对象的类(对象容器类)和接口的设计结构,统称为集合框架。而这组类的功能就是实现各种方式的数据存储。
Collection接口:1、Set接口:存放的元素是无序并且不包含重复元素
              2、List接口:存放的元素是有序并且允许有重复元素

注:     这2种接口中的元素:即对象引用,元素类型都为Object

     这2种接口中的重复:是指两个对象用过equals判断相等

       这2种接口中的有序:是指元素存入的顺序与取出的顺序相同


List接口三种实现类:

1、ArrayList类:
是对象引用的一个变长数组,能够动态的添加或减少其大小
注:对于使用索引取出元素有较高的效率,能够利用索引快速定位。但是对元素的删除和插入速度较慢,
因为使用的数组,需要移动后面的元素以调整索引顺序

public class ListDemo {public static void main(String[] args) {Collection c1 = new ArrayList();// 实例化一个具体的子类对象for (int i = 0; i < 5; i++) {c1.add(new Integer(i));}// 循环添加10个整型类对象System.out.println("c1:" + c1);Collection c2 = new ArrayList();c2.addAll(c1);// 将集合c1添加到c2集合对象中的操作c2.remove(new Integer(3));// 删除c2.add("haha");// 添加System.out.println("c2:" + c2);Iterator it = c2.iterator();while (it.hasNext()) {Object obj = it.next();System.out.println("Iterator遍历c2" + obj+"\t");}}}

结果如图:



2、LinkedList类:
提供了一个链接列表数据结构,LinkedList容器类通过连接指针来关联前后两个元素
注:因为LinkedList是使用双向链表实现的容器,所以频繁的插入坏人删除元素,使用LinkedList类效率较高,适合实现栈和队列

public final class LinkedListDemo {public static void main(String[] args) {LinkedList linklst = new LinkedList();linklst.add("F");linklst.add("B");linklst.add("D");linklst.add("E");linklst.add("C");System.out.println("显示初始化后linklst的内容:" + linklst);linklst.addLast("Z");linklst.addFirst("A0");linklst.add(1, "A1");System.err.println("显示添加操作后linklst的内容:" + linklst);// 执行删除F元素操作linklst.remove("F");// 执行删除第二个元素linklst.remove(2);System.out.println("显示删除操作后linklst的内容:" + linklst);// 执行删除第一个元素linklst.removeFirst();// 执行删除最后一个元素linklst.removeLast();System.out.println("显示删除操作后linklst的内容:" + linklst);// 获取第二个元素Object val = linklst.get(2);// 修改内容linklst.set(2, (String) val + "Changed");System.out.println("显示修改操作后linklst的内容:" + linklst);}}

结果如图所示:



3、Vector类:
提供了实现可增长数组的功能。
注:Vector类的大多数操作和ArrayList类相同,区别在于Vector类是线程同步的。


public class VectorDemo {public static void main(String[] args) {Vector v = new Vector();v.add("one");v.add("two");v.add("three");System.out.println("显示向量初始值" + v.toString());v.insertElementAt("zero", 0);v.insertElementAt("oop", 3);System.out.println("显示插入元素后向量值" + v.toString());v.setElementAt("three", 3);v.setElementAt("four", 4);System.out.println("显示修改元素后向量值" + v.toString());v.removeAllElements();System.out.println("显示删除元素后向量值" + v.toString());}}

结果如图:



注:java的集合与数组的区别在于:在创建java数组时,必须明确指定数组的长度,数组一旦创建,其长度就不能被改变。为了使程序能方便的存储、检索和操纵数目不固定

的一组数据,JDK类库提供了java集合,所以java集合类都位于java.util包中。另外java集合中不能存放基本类型数据,而只能存放对象的引用。

0 0
原创粉丝点击