黑马程序员------集合框架(No.2)(ArrayList、LinkedList、vector)
来源:互联网 发布:excel数据如何恢复 编辑:程序博客网 时间:2024/05/01 00:09
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
List集合对象的特点:
List:
|----List:元素是有序的,元素可以重复。因为该集合体系有索引。
|----ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快,但是增、删稍慢(涉及下标的改变)。线程不同步。
|----LinkedList:底层使用的链表数据结构。特点:增删的速度很快,查询的速度稍慢。
|----vector:底层是数组数据结构。出现的早,在集合框架出现之前。无论增删还是查询都慢,被ArrayList淘汰,线程同步。
有关Vector的程序
import java.util.*;/*枚举就是Vector特有的取出方式。枚举和迭代器很像枚举和迭代是一样的。因为枚举的名称和方法的名称都过长,所以被迭代器取代了,枚举就沉默了。*/class VectorDemo{public static void main(String[] args){Vector v = new Vector();v.add("java01");v.add("java02");v.add("java03");v.add("java04");Enumeration en = v.elements();while(en.hasMoreElements()){System.out.println(en.nextElement());}}}
有关LinkedList的程序
LinkedList特有方法
addFirst();
addLast();
获取元素,但不删除元素,如果集合中没有元素,会出现NoSuchElementException
getFirst();
getLast();
获取元素,但删除元素。如果集合中没有元素,会出现NoSuchElementException
removeFirst();
removeLast();
在JDK1.6出现了替代方法
添加元素
offerFirst();
offerLast();
获取元素,但不删除元素。如果集合中没有元素,会返回null;
peekFirst();
peekLast();
获取元素,但是会删除元素。如果集合中没有元素,会返回null。
pollFirst();
pollLast();
class LinkedListDemo{public static void main(String[] args){LinkedList link = new LinkedList();link.addFirst("java01");link.addFirst("java02");link.addFirst("java03");link.addFirst("java04");link.addFirst("java00");link.addLast("java05");link.offerFirst("java007");sop(link);sop(link.removeFirst());//遍历while(!link.isEmpty()){sop(link.removeFirst());}}public static void sop(Object obj){System.out.println(obj);}}
使用LinkedList模拟一个堆栈或者队列数据结构。
堆栈:先进后出,如同水杯。
队列:先进先出,如同水管。First in First out ---- FIFO。
import java.util.*;class Duilie{private LinkedList link ; //构造函数初始化的时候,建立一个链表。Duilie(){link = new LinkedList();}//每次都像头部添加元素public void myAdd(Object obj){link.offerFirst(obj);}//保证从尾部取出元素public Object myGet(){return link.pollLast();}public boolean isNull(){return link.isEmpty();}}class DuilieDemo{public static void main(String[] args){Duilie d = new Duilie();d.myAdd("java00");d.myAdd("java01");d.myAdd("java02");d.myAdd("java03");while(!d.isNull()){System.out.println(d.myGet());}}}
将自定义对象作为元素存到ArrayList集合中,并去除重复元素。
import java.util.*;/*将自定义对象作为元素存到ArrayList集合中,并去除重复元素。比如:存人对象。同名同年龄,视为同一个人。为重复元素思路:1.对人描述2.定义容器,将人存入。3.取出*/class Person{private String name;private int age;Person(String name,int age){this.name = name;this.age = age;}public String getName(){return name;}public int getAge(){return age;}public String toString(){return "("+name+":"+age+")";}//重写equals方法是因为ArrayList的contains方法的底层是由equals方法实现的。public boolean equals(Object obj){if(!(obj instanceof Person))return false;Person p = (Person)obj;return this.name.equals(p.name)&&this.age==p.age;}}class ArrayListDemo{public static void sop(Object obj){System.out.println(obj);}//实现ArrayList元素的过滤。public static ArrayList singleElement(ArrayList list){ArrayList newList = new ArrayList();Iterator it = list.iterator();while(it.hasNext()){Person p = (Person)it.next();if(!newList.contains(p)){newList.add(p);}}return newList;}public static void main(String[] args){ArrayList a = new ArrayList();//添加对象a.add(new Person("zhangsan",10));a.add(new Person("lisi",14));a.add(new Person("zhangsan",10));a.add(new Person("zhaoliu",12));a.add(new Person("lisi",14));a.add(new Person("lisi",14));sop(a);sop(singleElement(a));}}
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详情请查看:http://edu.csdn.net
- 黑马程序员------集合框架(No.2)(ArrayList、LinkedList、vector)
- 黑马程序员_学习笔记:9) 集合框架1:Collection(List、Set)、Iterator、List(ArrayList、LinkedList、Vector)
- 黑马程序员-------集合(ArrayList,LinkedList)
- 黑马程序员:集合类:List(ArrayList、LinkedList、Vector)、Set(HashSet、TreeSet)介绍
- (黑马程序员)学习笔记,Collection集合(ArrayList、LinkedList、Vector、HashSet、TreeSet)
- 黑马程序员_JavaSE基础17 之 集合框架 Vector LinkedList ArrayList HashSet LinkedHasSet TreeSet
- 黑马程序员--07.集合框架--04.List实现子类【ArrayList】【LinkedList】【Vector】
- 黑马程序员_集合1(ArrayList,LinkedList,Vector,Iterator,ListIterator)
- Java集合源码剖析(一)【集合框架概述、ArrayList、LinkedList、Vector】
- 总结:集合框架(LinkedList,ArrayList,HashSet)
- 集合---ArrayList,LinkedList,Vector
- 黑马程序员_Vector、LinkedList、ArrayList集合
- API--集合框架Vector集合,linkedList,ArrayList,HashSet集合
- 黑马程序员_集合1_(ArrayList、LinkedList、Vector、Iterator、ListIterator)
- 黑马程序员——List集合中ArrayList、linkedList、Vector的数据结构及特点
- Java基础知识_集合(ArrayList & LinkedList & Vector & 迭代器)
- 集合(二):Collection,List,ArrayList,LinkedList,Vector
- 浅析Java集合类源码(一)--- Vector, ArrayList, LinkedList
- 找出数组中出现奇数次的元素
- jQuery验证控件jquery.validate.js使用说明+中文API
- 新的起点,新的开始
- 宏定义
- 链表的操作
- 黑马程序员------集合框架(No.2)(ArrayList、LinkedList、vector)
- ESAPI之会话安全
- HDU4745 Two Rabbits
- toj1868 Count the factors
- 聚类算法(待补充)
- 写在开博前的话
- 安装配置Oracle10g透明网关(Gateway For Sql Server)
- Linux内核进程管理-do_fork()执行过程分析
- 关于文件结束符EOF