(2)Set接口的实现类有:HashSet,TreeSet
(3)Map接口的实现类有:HashMap,TreeMap
5.各个接口的存储特性:Collection:存储一组不唯一,无序的对象
List:接口存储一组不维一,有序(插入顺序)的对象
Set:接口存储一组维一,无序的对象
参考代码:串讲一个引用类
News news=(News)arrayList.get(i); //强制类型转换,object类arrayList转换为news对象,循环arrayList集合里的新闻news
System.out.println(news.getTitle()); //调用 ,返回所有的标题
}
public static void main(String[] args) {
News new1=new News();
new1.setId(1);
new1.setAuthor("陈京旗");
new1.setTitle("学习java");
linkedList .add(new1); // 给集合里添加对象,第一 条 新闻等,可以添加多条,例: linkedList .add(new2);
linkedList .addFirst(news3); //把给对象放到集合的第一位
linkedList .addLast(news2); //把给对象放到集合的最后一位
linkedList .remove(news1); //删除集合中的某一个对象
News news=(News)linkedList .get(i);
System.out.println(news.getTitle()); //调用 ,返回所有的标题
}
*/
Set 接口 实现类是HashSet (维一,无序)
Set s=new HashSet(); //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("china","中国" ); //集合里添加一个键值对 ;"CN"=key(键),"中国"=value(值)
String cn1=(String)map.get("china") //通过键获取相对应的值,,需要强制转换
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());
}