【Java学习笔记】基础知识学习11【集合和列表类】
来源:互联网 发布:qq飞车s车数据对比 编辑:程序博客网 时间:2024/05/18 01:40
集合,这个类在VB中也有见过,就是可以把一些对象添加到集合中。然后删除或者清空什么的。
看一个例子,进行集合的建立和遍历显示:
package sunsoft.testideas;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class Ex_Collection {static void TryCollection(){Collection<String> jCollection=new ArrayList<String>();jCollection.add("apple");jCollection.add("mj");jCollection.add("we are the world");Iterator<String> nIt=jCollection.iterator();for (;nIt.hasNext();) {String ktemp=(String)nIt.next();T.O(ktemp);}}}
这里,Collection<String> jCollection=new ArrayList<String>(); 表示创建一个字符串类型的集合
这里,Collection是接口,ArrayList是具体的实现类。
集合除了创建后的add方法外,还有一个很有用的方法addAll。这个方法可以将另一个集合中的所有数据加入到自己的集合中。
例如:
package sunsoft.testideas;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class Ex_Collection {static void TryCollection(){Collection<String> jCollection=new ArrayList<String>();Collection<String> myStudent=new ArrayList<String>();jCollection.add("apple");jCollection.add("mj");jCollection.add("we are the world");myStudent.addAll(jCollection);myStudent.add("我爱女孩!");Iterator<String> nIt=myStudent.iterator();for (;nIt.hasNext();) {String ktemp=(String)nIt.next();Easy.ShowL(ktemp);}}}
在这里面的代码中,你可以看到一个东西,是Iterator,这个叫做迭代器。这个东西用来把集合中的项目遍历出来。
另外一个Collection对象的方法是:removeAll(Collection del);
例如:
k.removeAll(orig); //这个的功能是,将k集合中,与orig集合内容相同的项全部删除。
例如:k中有“编程”,“赛车”,“摄影”,“脱衣舞”,“美元”,“性爱”
orig中有“赛车”,“脱衣舞”
则,在执行完:k.removeAll(orig); 后
k中,仅仅剩下“编程”,“摄影”,“性爱”
还有一个常用的方法,是isEmpty().它会返回一个逻辑型变量。
返回的true表示集合不为空,返回的false,表示集合为空。
几个常见的集合类:
List是接口
ArrayList是List接口的一个实现
采用的数组结构保存对象。这种数组结构的优点是可以快速的随机访问,但是插入和删除指定索引位置的元素的速度会较慢。
ArrayList的使用,前面有所介绍,可以参见前面的内容。
下面,由于ArrayList的插入和删除不高效,这里介绍LinkedList。这个类是用链表实现的List。根据数据结构与算法的知识,链表中插入元素和删除元素很方便,高速。毕竟只是改指针。但是,由于这个是非线性的,所以链表随机访问对象的速度很慢。
它有一些方法:
addFirst:将指定东西加入到链表开头
addLast:将制定东西加入到链表结尾
getFirst:获取链表开头的元素
getLast:获取链表结尾的元素
removeFirst:删除链表开头的元素
removeLast:删除链表结尾的元素
一个小例子:
static void LinkedListTry(){LinkedList<String> nLst=new LinkedList<>();nLst.add("there comes a time");nLst.add("when we heed a certain call");nLst.add("when the world must lend a helping hand");System.out.println("第一个元素:"+nLst.getFirst());System.out.println("最后一个元素:"+nLst.getLast());System.out.println("下面删除第一个");nLst.removeFirst();System.out.println("现在第一个元素:"+nLst.getFirst());System.out.println("下面删除最后一个");nLst.removeLast();System.out.println("现在最后一个元素:"+nLst.getLast());}
其实,LinkedList还有peek,clone,clear,pop,poll等方法,作用都可以大家自己探索。
- 【Java学习笔记】基础知识学习11【集合和列表类】
- 【Java学习笔记】正则表达式·集合和列表
- [学习笔记] Java核心技术 卷一:基础知识 集合(六)
- JAVA学习笔记(基础知识)
- 【Java 学习笔记】基础知识
- JAVA学习,基础知识笔记
- java集合类学习笔记
- java 集合类学习笔记
- Java集合类学习笔记
- Java集合类学习笔记
- Python 学习笔记 -- 变量、元组、列表、字典和集合
- Java集合学习笔记
- JAVA学习笔记--集合
- java学习笔记--集合
- JAVA集合学习笔记
- Java学习笔记-集合
- Java集合学习笔记
- JAVA学习笔记--集合
- Davinci DM6446 Codec Engine双核通信环境的搭建
- TI Davinci DM6446开发攻略——根文件系统的裁剪和移植
- Davinci DM6446开发攻略——LINUX GPIO驱动源码移植
- Davinci DM6446开发攻略-UBOOT-2009.03移植2 nand flash的烧写
- DAVINCI DM6446 开发攻略——V4L2视频驱动和应用分析
- 【Java学习笔记】基础知识学习11【集合和列表类】
- DOS下串口通信程序来传送文件的源代码
- Windows PowerShell漫谈-win7下没有超级终端
- CBitmap的使用
- ARM开发软件ADS教程
- ARM架构
- GM8180_gpio内核模块调试
- 如何编译linux第一个模块 hellomod.ko
- FFMpeg.H264解码win开发环境搭建