java List接口中常用类
2020-12-13 05:17
标签:有一个 each off static java 管理 super 传智播客 员工 Vector:线程安全,但速度慢,已被ArrayList替代。 ArrayList:线程不安全,查询速度快。 LinkedList:链表结构,增删速度快。取出List集合中元素的方式: get(int index):通过脚标获取元素。 iterator():通过迭代方法获取迭代器对象。 ArrayList和Vector类都是基于数组实现的List类,Vector比较古老,被ArrayList取代了; ArrayList是线程不安全的,而Vector是线程安全的,但是即使这样,也不推荐使用Vector,因为Collections有方法可以得到线程安全的ArrayList对象; Collections类: static List synchronizedList(List list) 返回指定列表支持的同步(线程安全的)列表。 Queue接口 继承Collection接口 模拟队列:先进先出(FIFO); void add(Object e):将e插入到队列尾部; Object element():获取队列头部的元素; boolean offer(Object e):将e插入到队列的尾部,当使用有容量限制的队列时,此方法比add(Object e)方法更好。 Object peek():获取队列头部的元素。如果此双端队列为空,则返回 null。 Object poll():获取并删除队列头部的元素。如果此双端队列为空,则返回 null。 Object remove():获取并删除队列头部的元素。 Eg:练习:List的使用 设计Department 和 Employee 对象类(按照开发的样式没有写在一个文件里面) //一个员工只可以有一个部门,所以按照普通的写法 //一个部门可以有许多员工,所以按照集合的写法; //员工 package re538.Department; public class Emp { private Dept dept;//一个员工只可以有一个部门,所以按照普通的写法 private String name; public Dept getDept() { return dept; } public void setDept(Dept dept) { this.dept = dept; } public Emp(String name) { super(); this.name = name; } public String toString(){//覆写toString方法 return this.name+""; } } //部门 package re538.Department; import java.util.List; public class Dept { private String name; private List emp;//一个部门可以有许多员工,所以按照集合的写法;部门里的属性,员工! public Dept(String name) { super(); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List getEmp() { return emp; } public void setEmp(List emp) { this.emp = emp; } private Dept parent;//一个部门只有一个直接主管部门,所以普通写法 private List children;//但是一个部门可以管理很多部门,充当很多部门的直接主管部门,所以使用集合 public Dept getParent() { return parent; } public void setParent(Dept parent) { this.parent = parent; } public List getChildren() { return children; } public void setChildren(List children) { this.children = children; } public String toString(){ return this.name.toString(); } } //测试类,主方法! package re538.Department; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class TestDemo { public static void main(String[] args) { Emp e1 = new Emp("刘亦菲"); Emp e2 = new Emp("章泽天"); Emp e3 = new Emp("张月娟"); Emp e4 = new Emp("王二五"); Emp e5 = new Emp("刘昭"); List list = new ArrayList();//把员工丢尽集合去 list.add(e1); list.add(e2); list.add(e3); list.add(e4); list.add(e5); for (Object object : list) {//把员工给遍历出来,使用的是直接的foreach(四种方法之一) System.out.println("----->"+object); } System.out.println("-------------------"); Dept d = new Dept("部门");//定义出一个部门来接收员工 d.setEmp(list);//把员工这个集合丢到部门去。 Dept d1 = new Dept("itcast"); Dept cditcast = new Dept("成都传智播客"); Dept gzitcast = new Dept("广州传智播客"); Dept d4 = new Dept("CSDN"); System.out.println(d4); List children = new ArrayList(); children.add(cditcast); children.add(gzitcast); d1.setChildren(children);//定义直接被主管部门(集合) d1.setParent(d4);//定义直接主管部门 Iterator it = children.iterator();//运用到了迭代遍历,四种之一! while(it.hasNext()){ System.out.println(it.next()); } } } java List接口中常用类 标签:有一个 each off static java 管理 super 传智播客 员工 原文地址:https://www.cnblogs.com/fanweisheng/p/11136151.html
上一篇:php翻页
下一篇:在windows 2003 sp2 或者 2008 rac环境中,可能会由于默认的SNP( Scalable Networking Pack)特性会导致 实例驱逐或者节点驱逐