面向对象技术书面作业5 (集合类 异常处理) 1.Collection 、List、 Set、 Map接口的而联系和区别有哪些? 2.遍历遍历集合框架Arraylist的方法有哪些? 3.遍历集合

面向对象技术书面作业5 (集合类 异常处理)

1.Collection 、List、 Set、 Map接口的而联系和区别有哪些?
2.遍历遍历集合框架Arraylist的方法有哪些?
3.遍历集合框架 HashSet的方法有哪些?
4.遍历集合框架 HashMap的方法有哪些?
5.什么是泛型?为什么要引入泛型集合?
6.举一个例子说明如何在方法中声明和抛出异常?
7.如何自定义异常?请自定义一个异常类,用于当三角形的三条边有负值或不能构成三角形时的进行异常处理。

**

1. Collection 、List、 Set、 Map接口的而联系和区别有哪些?

Collection接口是List接口和Set接口的父接口
Map也是一个接口
Collection接口是可迭代的
在这里插入图片描述
List集合中的元素:有序可以重复
Set集合:无序不可以重复
Map:以 key:value的键值对方式存储元素

2.遍历遍历集合框架Arraylist的方法有哪些?
三种方式

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

//遍历ArrayList的三种方式
public class ArrayListTest {
    public static void main(String[] args) {
        //创建ArrayList集合
        List arrayList = new ArrayList();
        //向集合中添加元素
        arrayList.add("钢铁侠");
        arrayList.add("美国队长");
        arrayList.add("蜘蛛侠");
        arrayList.add("雷神");
        arrayList.add("奇异博士");
        //第一种遍历方法,迭代器迭代
        Iterator iterator = arrayList.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //第二种遍历方法,增强for循环:for each
        for(Object o : arrayList){
            System.out.println(o);
        }
        //第三种方式,利用下标
        for (int i = 0; i <arrayList.size() ; i++) {
            System.out.println(arrayList.get(i));
        }
    }
}

3.遍历集合框架 HashSet的方法有哪些?

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

//遍历HashSet
public class HashSetTest {
    public static void main(String[] args) {
        //先创建一个HashSet集合
        Set hashSet =new HashSet();
        //往集合中添加元素
        hashSet.add("钢铁侠");
        hashSet.add("美国队长");
        hashSet.add("雷神");
        hashSet.add("蜘蛛侠");
        hashSet.add("奇异博士");
        //第一种方式,迭代器迭代
        Iterator iterator = hashSet.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //第二种方式,for each 循环
        for(Object o:hashSet){
            System.out.println(o);
        }
    }
}
**4.遍历集合框架 HashMap的方法有哪些?**
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class HashMapTest {
    public static void main(String[] args) {
        //创建HashMap集合
        Map<Integer,String> hashMap = new HashMap<>();
        //向Map集合中添加元素
        hashMap.put(1,"钢铁侠");
        hashMap.put(2,"美国队长");
        hashMap.put(3,"雷神");
        hashMap.put(4,"奇异博士");
        hashMap.put(5,"蜘蛛侠");
        //遍历map集合,遍历Map集合有两种方法,第一种,遍历所有的key去获取value
        //获取包含key的所有集合
        Set<Integer> set = hashMap.keySet();
        //可以使用迭代器迭代
        Iterator<Integer> iterator = set.iterator();
        while (iterator.hasNext()){
            Integer i = iterator.next();
            String s = hashMap.get(i);
            System.out.println(s);
        }
        //也可以使用for each循环
        for (Object o:set){
            System.out.println(hashMap.get(o));
        }
        //第二种方式
        //Set<Map.Entry<K,V>> entrySet()  将Map集合转化成Set集合
        //Set集合中元素的类型是: Map.Entry
        Set<Map.Entry<Integer,String>> s = hashMap.entrySet();
        //迭代器迭代
        Iterator<Map.Entry<Integer,String>> iterator1 = s.iterator();
        while(iterator1.hasNext()){
            Map.Entry<Integer,String> entry = iterator1.next();
            Integer key = entry.getKey();
            String value = entry.getValue();
            System.out.println("key == " + key + " value == " + value);
        }
    }
}

5.什么是泛型?为什么要引入泛型集合?
泛型是JDK5.0的新特性,可以使一个集合类中所有的元素类型统一
从集合中取出的元素是泛型指定的类型,不需要进行大量的“向下转型”

6.举一个例子说明如何在方法中声明和抛出异常?
声明异常throws
抛出异常throw

   import java.io.FileNotFoundException;

//6.举一个例子说明如何在方法中声明和抛出异常?
//throws声明异常、throw抛出异常
public class ExceptionTest {
    //声明异常
    public static void main(String[] args) throws FileNotFoundException {
        doSome();
    }
    
    public static void doSome() throws FileNotFoundException {
        System.out.println("doSome begin...");
        //声明异常
        throw new FileNotFoundException("文件找不到");
    }
}

7.如何自定义异常?请自定义一个异常类,用于当三角形的三条边有负值或不能构成三角形时的进行异常处理。

public class MyException extends Exception{
    //无参构造
    public MyException() {
    }
    //有参构造
    public MyException(String message) {
        super(message);
    }
}


public class Triangle {
    //三条边
    private double line1;
    private double line2;
    private double line3;
    //构造方法
    public Triangle() {

    }
    //请自定义一个异常类,用于当三角形的三条边有负值或不能构成三角形时的进行异常处理
    public Triangle(double line1, double line2, double line3) throws MyException {
        if (line1 <0 ||line2 <0 ||line3 < 0){
            throw new MyException("三角形的边不能小于零");
        }
        double[] lines = {line1,line2,line3};
        if (lines[0] > lines[1] + lines[2] || lines[2] < lines[0] - lines[1]){
            throw new MyException("不符合三角形的三边法则");
        }
        this.line1 = line1;
        this.line2 = line2;
        this.line3 = line3;
    }
}


public class TriangleTest {
    public static void main(String[] args) {
        try {
            //Triangle triangle =new Triangle(3,4,10);
//            Triangle triangle =new Triangle(-1,2,3);
            Triangle triangle =new Triangle(2,3,4);
        } catch (MyException e) {
            e.printStackTrace();
        }
    }
}
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值