10.12-包装类、大整形与集合框架

包装类

八个基本类型不能参与面向对象的开发,因为其不是Object类的子类,所以不能以多态的角度去看待;为此,Java为八个基本类型提供了对应的包装类

基本类型

  • byte ->Byte

  • short -> Short

  • int -> Integer

  • long ->Long

  • float -> Float

  • double -> Double

  • boolean -> Boolean

  • char -> Character

例子

package day10_12;

public class IntegerDemo {
	public static void main(String[] args) {
//		int a = new int(1); //错误语法
		/*
		 * 为了让基本类型也能够参与面向对象的开发(用于属性和方法)
		 * 包装类允许通过构造器将给定的基本类型数据转换为对应的包装类实例
		 */
		//此处的'1'是int类型的字面量,通过构造器将其包装为Integer类型
		Integer i = new Integer(1);
		Long l = new Long(1L);
		Double d = new Double(1.1);
		Character c = new Character('a');
		Integer i1 = new Integer(1);
		System.out.println(i==i1);//false
		//包装类重写了equals()方法,可以直接比较内容
		System.out.println(i.equals(i1));//true
		/*
		 * 创建包装类实例时,推荐的做法是使用包装类提供的静态方法
		 * valueOf()
		 * 该方法的好处在于它会将字面量值进行缓存并重用;其缓存一字节的值
		 */
		Integer n1 = Integer.valueOf(1);
		Integer n2 = Integer.valueOf(1);
		System.out.println(n1==n2);//true
		Double d1 = Double.valueOf(1.0);
		Double d2 = Double.valueOf(1.0);
		//Double类型没有任何的缓存
		System.out.println(d1==d2);//false
		Long l1 = Long.valueOf(1L);
		Long l2 = Long.valueOf(1L);
		System.out.println(l1==l2);
		/*
		 * 从包装类转换为基本类型
		 * xxxValue()
		 */
		int in = i.intValue();
		double dou = d.doubleValue();
		long lon = l.longValue();
		System.out.println(in+","+dou+","+lon);
	}
}

自动拆装箱特性

自动装箱

将基本类型的数据自动转换为对应的包装类实例

自动拆箱

将包装类实例的数据自动转换为基本类型的数据

例子

支持的常量与方法

  • MAX_VALUE 获取相对应基本类型的最大值

  • MIN_VALUE 获取相对应基本类型的最小值

  • parseXXX(String str) 可以将字符串转换为对应的基本类型数据

例子

java.math.BigInteger(大整形)

可以提供比Long更大的整数存放

例子

java.math.BigDecimal

可以做很精确的小数运算,并且可以保存精确的小数

Java中的集合框架

Collection接口

该接口是所有接口的超类(父接口)

其派生了List/Set集合

List集合:可重复集、有序集

Set集合:不可重复集、无序集

不可重复:指Set集合中不可以出现两个equals()比较为true的元素

注意:数组不属于集合的范畴

常用方法

int size() 返回集合中的元素数量

boolean isEmpty() 判断集合中是否包含元素,不包含则返回true

boolean contains(Object o) 判断当前集合中是否包含给定的元素

void clear() 清空集合

boolean add(元素类型 e) 向当前集合添加元素,添加成功则返回true

boolean remove(Object o) 从当前集合中删除给定的元素,删除成功则返回true

boolean addAll(Collection o) 将给定集合中的所有元素添加到当前集合中

boolean removeALL(Collection o) 删除当前集合中与给定集合相同的元素

boolean retainALL(Collection o) 只保留当前集合中与给定集合相同的元素

Iterator Iterator() 返回用于遍历集合的迭代器

例子

List集合

常见实现类

ArrayList 内部使用数组来实现

LinkedList 内部使用链表来实现

Vector 不常用

例子-ArrayList

例子-get/set

例子-泛型支持

泛型

泛指的某一种类型

JDK1.5以后的新特性

例子

Iterator Iterator()

返回用于遍历集合的迭代器

例子-迭代器遍历

例子-泛型支持

最后更新于