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()
Iterator Iterator()返回用于遍历集合的迭代器
例子-迭代器遍历
例子-泛型支持
最后更新于