黑马程序员技术交流社区
标题:
Collection和迭代器的基本使用
[打印本页]
作者:
追逐
时间:
2014-3-21 09:13
标题:
Collection和迭代器的基本使用
本帖最后由 追逐 于 2014-3-21 19:31 编辑
import java.util.ArrayList;
import java.util.Iterator;
/*
1,add方法的参数是Object.以便于接收任意类型对象。
2集合中存储的都是对象的引用(也就是地址)
常用函数
add(); 添加元素
size(); 求集合的长度
contains(String); 判断String字符是否存在于集合中
isEmpty(); 此函数判断集合是否为空
remove(String) 删除数组中的Sring元素
clear(); 清空集合
retainAll() 去交集
remove() 删除有交集的元素
什么是迭代器?
其实就是集合的取出元素的方式。
把取出方式定义在集合的内部,
这样取出方式就可以直接访问集合内容的元素。
那么取出方式就被定义成了内部类。
而每一个容器的数据结构不同。
所以取出的动作细节也不一样,但是都有共性内容。
判读和取出。那么可以可以将共性抽取。
所以这些内部类都符合一个规则。该规则就是Iterator.
如何取出集合的取出对象呢?
通过一个对外提供的方法iterator();
*/
class CollectionDemo
{
public static void main(String[] args)
{
//mothed_1();
//mothed_2();
dieDai();
}
//结合容器Collection的一个基本应用
public static void mothed_1()
{
//创建一个集合容器,使用Collection接口的子类。ArrayList
ArrayList a1 = new ArrayList();
//添加元素
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java04");
//获取个数。求集合的长度
p("长度是:" + a1.size());
//打印集合
p("原集合:" + a1);
//判断java03元素是否存在 运用contains函数
p("java03是否存在于集合中:" + a1.contains("java03"));
//判断集合是否为空 运用isEmpty()函数
p("判断集合是否为空:" + a1.isEmpty());
//删除集合
a1.remove("java03"); //调用remove函数删除集合中的元素
p("删除单个元素后的集合:" + a1);
a1.clear(); //调用clear清空集合
p("清空后的集合:" + a1);
}
//集合中的交集小例子
public static void mothed_2()
{
//创建一个集合容器,使用Collection接口的子类。ArrayList
ArrayList a1 = new ArrayList();
//添加元素
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java04");
ArrayList a2 = new ArrayList();
//添加元素
a2.add("java01");
a2.add("java02");
a2.add("java05");
a2.add("java06");
//a1.retainAll(a2); //判断两个容器是否有交集的地方,有的话。把交集的内容打印,.可以剪短的称之为取交集
//p(a1);
a1.removeAll(a2); //干掉相同的元素
p(a1);
}
//简单应用迭代器
public static void dieDai()
{
ArrayList s = new ArrayList();
s.add("java01");
s.add("java02");
s.add("java03");
s.add("java04");
/* 此为while循环
//获取迭代器 使用迭代器取出集合中的元素
Iterator it = s.iterator();
while(it.hasNext()) //判断集合中是否有内容。有就往下执行
{
p(it.next()); //打印输出集合中的内容
}
*/
//使用for循环使用迭代器
for(Iterator it = s.iterator(); it.hasNext(); )
{
p(it.next());
}
}
public static void p(Object obj)
{
System.out.println(obj);
}
}
复制代码
作者:
trhthyj
时间:
2014-3-21 10:04
正学着这里呢
作者:
透过生活
时间:
2014-3-21 12:53
给你补充下吧。要想使用迭代器,必须使用iterator接口。
Map集合就不能直接使用迭代器。
必须使用keySet 或者是entrySet,返回Set的集合使用
entrySet效率比较高
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2