集合框架—List & Iterator
1.使用条件
1.不知道有多少对象需要运行
2.(或者)需要复杂的方式存储
2.位于java.util包中的一些类和接口
Map【接口】
*
(1)HashMap【类】
*
(2)TreeMap【类】
*
Collection【接口】: 存储一组不唯一,无序的对象{通用方法如下}
*
1.add(Object o)【返回boolean】,在列表的末尾开始添加,起始索引为0
*
2.size()【返回 int】,列表中元素的个数
*
3.contains(Object o)【boolean】,判断列表中是否存在指定元素
*
4.remove(Object o)【boolean】,列表中删除指定元素
*
5.clear(),将集合清空
*
6.isEmpty() 【boolean】,判断集合是不是空
*
7.iterator(),返回迭代器
*
8.toArray(),把集合变成一个序列 例:Object [ ] arr=coll.toArray( );
*
List【接口】: 存储一组不唯一,有序的对象
*
ArrayList【类】: 长度可变的数组【遍历元素和随机访问元素】{ArrayList特有方法如下}
*1.add(Object o)【返回boolean】,在列表的末尾开始添加,起始索引为0
*
2.size()【返回 int】,列表中元素的个数
*
3.contains(Object o)【boolean】,判断列表中是否存在指定元素
*
4.remove(Object o)【boolean】,列表中删除指定元素
*
5.add(int indet,Object o)【返回void】,在指定位置添加元素
*
6.get (int index)【Object】,列表指定位置取出元素,使用前要强制类型转换
*
7.remove(int index)【Object】,列表中删除指定位置的元素
*
LinkedList【类】: 链表的存储方式【插入和删除元素】{LinkedList特有方法如下}
*
1.addFirst(Object o)【 void】, 在列表首位添加元素
*
2.addLast(Object o)【 void】, 在列表末位添加元素
*
3.getFirst(Object o)【 Object】, 返回在列表首位的元素
*
4.getLast(Object o)【Object】, 返回在列表末位的元素
*
5.removeFirst(Object o)【 Object】, 删除在列表首位的元素
*
6.removeLast(Object o)【Object】, 删除在列表末位的元素
*
Vector【类】
*
Set【接口】:存储一组唯一,无序的对象
*
存放对象引用,采用对象的equals()方法对两个对象比较,没有get方法(无序没有索引值,无法获取)
*
获取元素的方式1.增强型的for 2.iterator迭代器
*
HashSet【类】
LinkedHashSet【类】
TreeSet【类】
Iterator【接口】(遍历的时候都可以使用):Iterator【接口】使用必须是实现类对象;Collection【接口】方法iterator()返回值为实现类对象
*
存储一组键值对象,提供key(唯一的)到value的映射
*
1.获得迭代器,通过iterator方法获得迭代器 例:Iterator itor=set.iterator(); //获得迭代器 itor
*
2.迭代器.hasNext 判断是否有下一个元素【返回值为boolean】 例:itor.hasNext()
*
3.next方法获取元素 【返回值 Object】 例:NewTitle t=(NewTitle)itor.next();
3.Collections【工具类】: 对集合进行遍历,排序多种算法的实现
例:
例:新闻类管理系统
新闻类-------------------------------------------------------------------------------------------------------------------
packagecn.com.Abner.list;
//新闻标题类
public class NewTitle {
//新闻ID,内容,作者
private int ID;
private String title;
private String author;
public NewTitle() {
}
public NewTitle(int iD, String title, String author) {
this.ID = iD;
this.title = title;
this.author = author;
}
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
新闻管理类-------------------------------------------------------------------------------------------------------------------
ArrayList+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
package cn.com.Abner.list;
import java.util.ArrayList;
import java.util.Iterator;
//新闻管理
public class ArrayListDemo {
public static void main(String[] args) {
//集合存储多条新闻标题
NewTitle t1=new NewTitle(1,"A","A1");
NewTitle t2=new NewTitle(1,"B","B1");
NewTitle t3=new NewTitle(1,"C","C1");
NewTitle t4=new NewTitle(1,"D","D1");
NewTitle t5=new NewTitle(1,"E","E1");
ArrayList T=new ArrayList();
T.add(t1); //将元素放入集合中
T.add(t2);
T.add(t3);
T.add(t4);
System.out.println("新闻标题的总数为:"+T.size()); //集合长度
//遍历list,取出每条新闻的题目
for(int i=0;i<T.size();i++) {
NewTitle t=(NewTitle)T.get(i); //取出元素(新闻标题)
System.out.println(t.getTitle());
}
System.out.println();
System.out.println("---------------------------------------------------");
for(Object obj:T) {
NewTitle t=(NewTitle)obj;
System.out.println(t.getTitle());
}
System.out.println("-------------------------------------------------------");
Iterator itor=T.iterator(); //Iterator迭代器
while(itor.hasNext()) { //判断下一个是否有元素
NewTitle t=(NewTitle)itor.next(); //获取元素
System.out.println(t.getTitle());
}
System.out.println("---------------------------------------------------------");
T.clear(); //清空集合
System.out.println(T.size());
}
}
LinkeList++++++++++++++++++++++++++++++++++++++++++++++++
packagecn.com.Abner.list;
import java.util.LinkedList;
public class LinkeListDemo {
public static void main(String[] args) {
//集合存储多条新闻标题
NewTitle t1=new NewTitle(1,"A","A1");
NewTitle t2=new NewTitle(2,"B","B1");
NewTitle t3=new NewTitle(3,"C","C1");
NewTitle t4=new NewTitle(4,"D","D1");
NewTitle t5=new NewTitle(5,"E","E1");
LinkedList T=new LinkedList();
T.add(t1); //元素放到集合中
T.add(t2);
T.add(t3);
T.add(1, t4); //第一个位置放t4
T.addFirst(t5);
System.out.println(T.size());
//遍历集合
for(int i=0;i<T.size();i++) {
NewTitle t=(NewTitle)T.get(i);
System.out.print(t.getTitle()+" ");
}
System.out.println();
System.out.println("------------------------------------");
for(Object obj:T) {
NewTitle t=(NewTitle)obj;
System.out.println(t.getTitle()+" ");
}
}
}