集合框架
Java集合框架提供了一套性能优良、使用方便的接口和类。(注:都在Java.util包中)
接口:Iterator(迭代),Collection,List,Set,Map (注:其中List与Set都是继承了Collection)
实现类:(1)List接口的实现类有:ArrayList , LinkedList;
(2)Set接口的实现类有:HashSet,TreeSet
(3)Map接口的实现类有:HashMap,TreeMap
实用工具类: Collections,Arrays
各个接口的存储特性:Collection:存储一组不唯一,无序的对象
List:接口存储一组不维一,有序(插入顺序)的对象
Set:接口存储一组维一,无序的对象
Map:接口存储一组键值对象,提供key到value的映射
ArrayList集合类 (不维一,有序)
ArrayList newList=new ArrayList(); //实例化一个ArrayList (注:实例要导包)
newList.add(news1); //给集合内添加一个对象
System.out.println(newList.size()); //输出该集合的长度
for (int i = 0; i < newList.size(); i++) { //遍历集合
News biaoTi=(News)newList.get(i); //因为遍历出来的是Object对象,所以要强制类型转换
System.out.println(biaoTi.getTitle());
}
LinkedList集合类 (不维一,有序)
LinkedList newList=new LinkedList(); //实例化一个LinkedList (注:实例要导包)
newList.add(news1); //给集合内添加一个对象
newList.addFirst(news3); //把给对象放到集合的第一位
newList.addLast(news2); //把给对象放到集合的最后一位
newList.remove(news1); //删除集合中的某一个对象
(注:ArrayList与LinkeList比较:ArrayList集合在查询集合内对象比较方便,LinkeList集合在插入与删除集合内对象时对集合内其他对象影响较小;)
Set 接口 实现类是HashSet (维一,无序)
Set s=new HashSet(); //实例化一个set的集合对象 (注:实例要导包)
s.add(news1); //给集合内添加一个对象
注:因为Set接口存储的对象的无序的,不能用下标遍历,所以遍历Set集合只能用:”增强型for“和“Iterator迭代”。
增强型for: for (Object obj : s) { //Object :遍历的对象类型 obj:对象名 s:Set集合名
News biaoTi=(News)obj; //把原类型为Object的obj强制转换为News的对象
System.out.println(biaoTi.getTitle());
}
Iterator迭代器遍历:
Iterator的方法:boolean hasNext(); //判断集合里是否存在另一个可访问的元素,返回ture或false
Object next(); //返回要访问的下一个元素
Iterator it=s.iterator(); //获得迭代器 迭代器名:it (注:获取要导Iterator 的包)
while(it.hasNext()) { //利用循环,判断集合是否还有下个元素,返回ture,继续循环,返回false则退出循环
News biaoTi=(News)it.next(); //因为it.next();是object类型的,需要强制转换。
System.out.println(biaoTi.getTitle()); //遍历输出Set集合里每一个对象中的属性
}
Map接口
Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作。
Map接口最常用的实现类的HashMap;(key ;value)
Map map=new HashMap(); //实例一个MAP集合 (注:实例要导包)
map.put("CN","中国" ); //集合里添加一个键值对 ;"CN"=key(键),"中国"=value(值)
String cn1=(String)map.get("CN") //通过键获取相对应的值,,需要强制转换
System.out.println(cn1); //输出值
map.clear(); //清空集合中的键值对
泛型
将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性。(参数化类型)
如:Student stu1=new Student("小明","男");
Map<String,Student> map=new HashMap<String, Student>();
map.put("ming", stu1);
for (String s : map.keySet() ){
System.out.println(s+"对应的学员姓名是"+map.get(s).getName()+"学员性别是:"+map.get(s).getSex());
}