014.day14

枚举

1.概述

引用类型,规定了取值范围的变量类型

2.定义方式

public enum Score {
	A("90-100", "优秀") {
		// 在枚举元素中可以覆盖外部定义的方法
		public boolean hasWork() {
			return false;
		}
	},
	B("80-90", "良好"), C("70-80", "及格"), D("60-70", "挂科"), E("无成绩", "缺考");
}
  • 所有的值之间使用逗号分隔,结尾的分号可以省略

3.枚举类型

// TODO 枚举类型
		Score score = Score.B;
		// 获取枚举的序数
		System.out.println(score.ordinal());// 1
		// 枚举元素间的比较,序数做差(前减后)
		System.out.println(Score.A.compareTo(Score.B));// -1
		// 输入一个学生成绩,如果在90-100分,则为A,顺次排列,要求输入成绩后输出一个成绩的评价
		String grade = getGrade();
		// valueOf(Class<T> enumType, String name)
		// 返回一个枚举常量,第一个参数:指定枚举类型(Score.class),第二个参数:字符串->枚举常量
		// 能够将一个字符串变量与相应的枚举常量建立联系,可以实现动态的判断
		score = Score.valueOf(Score.class, grade);
		switch (score) {
		case A:
			System.out.println("优秀");
			break;
		case B:
			System.out.println("良好");
			break;
		case C:
			System.out.println("及格");
			break;
		case D:
			System.out.println("挂科");
			break;

		default:
			System.out.println("缺考");
			break;
		}

	}

4.枚举的遍历

// TODO 枚举的遍历
		//返回一个数组
		Score[] scores = Score.values();
		for (Score score : scores) {
			// 返回此枚举常量的名称
			System.out.print(score.name() + "\t"); //A B C D E
			// 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
			System.out.print(score.ordinal() + "\t");// 0 1 2 3 4 
		}

异常

1.异常的语法结构

// TODO 异常的语法结构
		System.out.println("开始运行");
		// try-catch引导代码块
		// try -> 执行相应的代码
		try {
			test();
		} catch (ArithmeticException e) {
			// catch(XXXException e) 要捕获的异常类型
			// 相应异常的解决方法
			e.printStackTrace();// 打印异常信息
			System.out.println("异常捕获");
		}
		System.out.println("运行结束");

2.常见的异常

// TODO 常见的异常
		// throw new NullPointerException();// 空指针->对象没有实例化(指向为null)
		// throw new ArrayIndexOutOfBoundsException();// 数组越界异常 -> 下标超出数组范围
		// throw new IllegalArgumentException();// 非法参数异常
		// throw new NumberFormatException();// 数字转换异常 -> 将字符串类型转换为数字类型
		// throw new ArithmeticException();// 算数异常 -> 计算时产生的异常
		// throw new ParseException();// 解析异常 -> 日期等解析方法
		// throw new OutOfMemoryError();// 内存溢出异常 -> 死循环造成的资源不足

3.自定义输出异常信息

		try {
			test1();
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
		}
public static void test1() throws ArithmeticException {
    // 自定义输出的异常信息
		throw new ArithmeticException("除数不能为0");
	}

集合

1.java中的集合

// TODO Java中的集合
		// Collection -> List/Set -> ArrayList,LinkedList,HashSet,TreeSet,Vector
		// Map -> HashMap,HashTable,TreeMap
		// 1.实例化ArrayList - 无元素类型的限制(Object[])
		List list = new ArrayList();
		// 2.向集合当中添加元素
		list.add("1");
		list.add(2);
		list.add(3.0);
		list.add(3.0);
		// list.add(new Student());
		// 3.获取数组中的元素
		// System.out.println(list.get(0));
		// System.out.println(list.get(1));
		// System.out.println(list.get(2));
		// System.out.println(((Student)list.get(3)).getName());
		// 4.无元素类型限制 - 优点:可以装不同类型的元素/缺点:不利于自定义类型(引用类型)元素的操作
		// 5.集合的遍历
		for(int i = 0;i < list.size();i ++) {
			System.out.println(list.get(i));
		}
		// 6.foreach遍历 - 基于迭代器的实现,避免在foreach中变动集合中的元素
		for (Object object : list) {
			System.out.println(object);
		}
		System.out.println(list.size());

2.add

// TODO ArrayList -> add插入方法
		List list = new ArrayList();
		list.add("1");
		list.add(2);
		list.add(3.0);
		list.add(3.0);
		// add(int index,E element)插入
		// 数组越界,能够取到的下标以当前的集合中的元素个数为准 list.size()
		list.add(3,5);
		System.out.println(list.get(3));

3.ArrayList

// TODO ArrayList -> 
		List list1 = new ArrayList();
		list1.add("1");
		list1.add(2);
		list1.add(3.0);
		List list2 = new ArrayList();
		list2.add("4");
		list2.add(5);
		list2.add(6.0);
		// 将某一个集合追加到尾部
		list1.addAll(list2);
		/*for (Object object : list1) {
			System.out.println(object);
		}*/
		// 从某一个位置插入整个集合的所有元素,原集合的元素不会丢失
		list1.addAll(1, list2);
		for (Object object : list1) {
			System.out.println(object);
		}
  • contains,isEmpty,remove,toArray
// TODO ArrayList -> 是否包含,是否为空,删除元素
		List list1 = new ArrayList();
		list1.add("1");
		list1.add(2);
		list1.add(3.0);
		// 底层是equals方法 -> 基本数据类型及字符串都能够查找成功
		System.out.println(list1.contains("1"));
		// 集合为空时返回true
		System.out.println(list1.isEmpty());
		// 删除元素,删除成功返回true,删除失败返回false
		System.out.println(list1.remove("1"));
		System.out.println(list1.remove("2"));
// TODO ArrayList -> toArray
		List list1 = new ArrayList();
		list1.add("1");
		list1.add(2);
		list1.add(3.0);
		// 将ArrayList转换为对应类型的数组
		Object[] objects = list1.toArray();
		for (int i = 0; i < objects.length; i++) {
			System.out.println(objects[i]);
		}
posted @ 2018-08-01 11:11  Yokiia  阅读(107)  评论(0编辑  收藏  举报