java第七章第九题_java面向对象第七章

掌握集合框架包含的内容

l  java中的集合,位于包java.util

l  Java集合框架分为2大接口:

n  Collection

u List(ArrayList、LinkedList)

u Set(HashSet、TreeSet)

n  Map

u HashMap

u TreeMap

l  集合框架的优点?

解决数组的一些不足之处(存储数据类型单一、空间不可变,操作数据比较麻烦、性能低等),

提供了一种标准的体系结构,方便快速高效操作集合数据

public static voidmain(String [] args){//创建四个狗狗对象

Pet ouou=new Pet("欧欧","雪瑞拉");

Pet yaya=new Pet("亚亚","拉布拉多");

Pet meimei=new Pet("美美","雪瑞拉");

Pet feifei=new Pet("菲菲","拉布拉多");//创建ArrayList集合对象并把4个狗狗对象放入其中

ArrayList p=newArrayList();

p.add(ouou);

p.add(yaya);

p.add(meimei);

p.add(2, feifei); //把feifei添加到指定位置//输出集合中的狗狗的数量

System.out.println("共计有"+p.size()+"条狗。");//通过便利集合来显示个条狗狗的信息

System.out.println("分别是:");for(int i=0;i

Pet e=(Pet)p.get(i); //强制转换

System.out.println(e.getName()+"\t"+e.getType());

}

}

ArrayList

public static voidmain(String [] args){//创建四个狗狗对象

Pet ouou=new Pet("欧欧","雪瑞拉");

Pet yaya=new Pet("亚亚","拉布拉多");

Pet meimei=new Pet("美美","雪瑞拉");

Pet feifei=new Pet("菲菲","拉布拉多");//创建LinkedList集合 对象并把多个狗狗放入对象中

LinkedList l=newLinkedList();

l.add(ouou);

l.add(yaya);

l.addLast(meimei);//将meimei放到第一

l.addFirst(feifei); //将feifei放到最后//查看集合中第一条狗狗的名称

Pet pFrist=(Pet)l.getFirst();

System.out.println("第一条狗狗的昵称是:"+pFrist.getName());//查看最后一条狗狗的昵称

Pet pLast=(Pet)l.getLast();

System.out.println("最后一条狗狗的昵称是:"+pLast.getName());//删除集合中第一条和最后一条狗狗

l.removeFirst();

l.removeLast();//显示删除部分狗狗后集合中各条狗狗的信息

System.out.println("\n 删除部分狗狗后还有"+l.size()+"条狗狗!");

System.out.println("分别是:");for(int i=0;i

Pet e=(Pet)l.get(i); //强制转换

System.out.println(e.getName()+"\t"+e.getType());

}

}

LinkedList

public static voidmain(String [] args){//1.使用HashMap存储多组国家英文简称和中文全称的"键-值对"

HashMap countries =newHashMap();

countries.put("CN", "中华人民共和国");

countries.put("RU", "俄罗斯联邦");

countries.put("FR", "法兰西共和国");

countries.put("US", "美利坚合众国");//2.显示"CN"对应国家的中文全称

String countrie=(String) countries.get("CN"); //需强制转换

System.out.println("CN对应的国家是:"+countrie);//3.显示集合中元素个数

System.out.println("Map中共有:"+countries.size()+"国家");//4.两次判断Map中是否存在"FR"健

System.out.println("Map中包含FR的Key吗?"+countries.containsKey("FR"));

System.out.println("去除FR");

System.out.println("Map中包含FR的Key吗?"+countries.containsKey("FR"));//5.分别显示键集、值集、和键-值对集

System.out.println(countries.keySet());

System.out.println(countries.values());

System.out.println(countries);//6.清空HashMap并判断

countries.clear(); //清空

if(countries.isEmpty()){

System.out.println("已清空Map数据!");

}else{

System.out.println("数据没有清空。");

}

}

HashMap

public static voidmain(String [] args){//创建多个宠物对象

Pet ouou=new Pet("欧欧","雪瑞拉");

Pet yaya=new Pet("亚亚","拉布拉多");

Pet meimei=new Pet("美美","雪瑞拉");

Pet feifei=new Pet("菲菲","拉布拉多");//创建Map集合对象并把多个狗狗对象放入其中

Map m=newHashMap();

m.put(ouou.getName(), ouou);

m.put(yaya.getName(), yaya);

m.put(meimei.getName(),meimei);

m.put(feifei.getName(),feifei);//通过迭代器依次输出集合中所有狗狗的信息

System.out.println("使用Iterator遍历,所以狗狗的昵称和品种是:");

Set keys=m.keySet(); //返回类型为Set,取出所有Key的集合

Iterator it=keys.iterator(); //获取Iterator对象

while(it.hasNext()){

String k=(String)it.next(); //取出Key

Pet p=(Pet)m.get(k); //根据Key取出对应的值

System.out.println(k+"\t"+p.getType());

}

}

迭代器

掌握ArrayList和LinkedList的使用

常用方法【P170页的表7-1】

添加: add() 该方法重载2次

boolean add(Object e);//保存任意数据类型的元素

void add(int index,Object e) ;//在指定的下标处,添加任意数据类型的元素

删除:remove() 该方法重载2次

boolean remove(Object e);根据元素的值,删除

Object remove(int  index);根据下标位置,删除

获取元素:get(int  index)

元素个数:size()

判断某个元素是否存在:boolean contains(Object  e)

以上方法,是实现了接口List的类(ArrayList和LinkedList)共有的方法

l  LinkedList特有的方法:P173页表7-2

添加:addFirst()、addLast();

删除:removeFirst()、 removeLast();

获取:getFirst()、getLast()

l  ArrayList和LinkedList的异同点?

相同点:

都实现了接口List,用来存储可重复,有序的对象

操作数据(添加、删除、获取数据、判断等)的方法都相同

不同点:

存储方式不同:ArrayList和数组相同,在内存中分配连续的空间;而LinkedList采用链表方式存储数据

效率侧重点不同:ArrayList在遍历和随机访问元素的效率较高;LinkedList在插入和删除数据效率较高

public static voidmain(String [] args){//创建多个狗狗对象

Pet ouou=new Pet("欧欧","雪瑞拉");

Pet yaya=new Pet("亚亚","拉布拉多");

Pet meimei=new Pet("美美","雪瑞拉");

Pet feifei=new Pet("菲菲","拉布拉多");//创建ArrayList集合对象并把多个狗狗对象放入其中

List p=new ArrayList (); //标记元素类型

p.add(ouou);

p.add(yaya);

p.add(meimei);

p.add(2, feifei); //将feifei添加到指定位置//显示第三个元素信息

Pet p3=p.get(2); //无需强制转换

System.out.println("第三个狗狗信息如下:");

System.out.println(p3.getName()+"\t"+p3.getType());//使用foreach语句遍历Pet对象

System.out.println("\n所有狗狗信息如下:");for(Pet e:p){ //无需强制转换

System.out.println(e.getName()+"\t"+e.getType());

}

System.out.println( );for(int i=0;i

Pet t=p.get(i); //无需强制转换

System.out.println(t.getName()+"\t"+t.getType());

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值