韩顺平循序渐进学java 第21讲 集合(未完待续)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了韩顺平循序渐进学java 第21讲 集合(未完待续),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2513字,纯文字阅读大概需要4分钟。
内容图文
21.1 引出问题
一个问题?
前面我们学习了数组,充分体会到数组的优越性,就是可以存储同一类型的数据,但是我们假设有这样的需求,大家看看如何解决?
请做一个公司职员薪水管理系统,要求完成如下功能:
1、当有新员工时,将该员工加入到管理系统;
2、可以根据员工号,显示该员工的信息;
3、可以显示所有员工信息;
4、可以修改员工的薪水;
5、当员工离职时,将该员工从管理系统中删除;
6、可以按照薪水从低到高顺序排序;
7、可以统计员工的平均工资、最低和最高工资。
解决之道-链表或集合类:
我们想,如果有这样一种数组,可以动态的改变就好了,java的设计者为我们提供了一系列的集合类。
21.2 集合类分类
图中打红色三角的为常用的需要掌握的几个集合类。
从上面的图可以看出java集合类主要有以下几种:
1、List结构的集合类
ArrayList类,LinkedList(链表)类,Vector类,Stack类
2、Map结构的集合类
HashMap类,Hashtable类
3、Set结构的集合类
HashSet类,TreeSet类
4、Queue结构的集合
Queue接口
21.3 List结构的集合类
ArrayList类,LinkedList(链表)类,Vector类,Stack类
21.3.1 ArrayList
上图为结合代码画出的内存中的运行示意图。
演示代码如下:
1 /** 日期:2016-03-07 2 * 功能:ArrayList演示 3 */ 4 package test; 5 // 所有集合类都在java.util包中 6 import java.util.*; 7publicclass Demo2 { 8 9publicstaticvoid main(String[] args) { 10// TODO Auto-generated method stub1112 ArrayList al=new ArrayList(); 13 System.out.println("此时al的长度为"+al.size()); 1415 Clerk clerk1=new Clerk("宋江",50,1000); 16 Clerk clerk2=new Clerk("吴用",45,1200); 17 Clerk clerk3=new Clerk("林冲",35,1500); 1819//添加职员对象 20//有两种add方法,下面这种方式是将新对象添加到ArrayList的最后 21//还有一种add方法是,将新对象添加到指定的位置22 al.add(clerk1); 23 al.add(clerk2); 24 al.add(clerk3); 25 al.add(clerk1); //注意:可以重复添加一个对象26 System.out.println("此时al的长度为"+al.size()); 2728//遍历al,打印出每个职员的名字29for(int i=0;i<al.size();i++) 30 { 31//需要实例化一个临时变量,来完成名字的读取32 Clerk temp=(Clerk)al.get(i); 33 System.out.println("第"+i+"个人的名字为:"+temp.getName()); 34 } 3536 System.out.println("====删除吴用之后===="); 37//删除职员对象38 al.remove(1); 39for(int i=0;i<al.size();i++) 40 { 41 Clerk temp=(Clerk)al.get(i); 42 System.out.println("第"+i+"个人的名字为:"+temp.getName()); 43 } 44 } 4546} 4748class Clerk 49{ 50private String name; 51privateint age; 52privateint salary; 5354public String getName() { 55return name; 56 } 57publicvoid setName(String name) { 58this.name = name; 59 } 60publicint getAge() { 61return age; 62 } 63publicvoid setAge(int age) { 64this.age = age; 65 } 66publicint getSalary() { 67return salary; 68 } 69publicvoid setSalary(int salary) { 70this.salary = salary; 71 } 7273public Clerk(String name,int age,int salary) 74 { 75this.name=name; 76this.age=age; 77this.salary=salary; 78 } 7980 }
运行结果如下:
1 此时al的长度为0 2 此时al的长度为4 3 第0个人的名字为:宋江 4 第1个人的名字为:吴用 5 第2个人的名字为:林冲 6 第3个人的名字为:宋江 7 ====删除吴用之后==== 8第0个人的名字为:宋江 9第1个人的名字为:林冲 10 第2个人的名字为:宋江
21.2.2 LinkedList
链表
比ArrayList增加了一些方法,比如addFirst(往前面加)、addLast(往后面加)等。
21.2.3 Vector
向量
与ArrayList有区别,随后讲。
21.2.4 Stack
栈
add时是往前面加。
原文:http://www.cnblogs.com/PistonType/p/5251433.html
内容总结
以上是互联网集市为您收集整理的韩顺平循序渐进学java 第21讲 集合(未完待续)全部内容,希望文章能够帮你解决韩顺平循序渐进学java 第21讲 集合(未完待续)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。