Java高级特性 总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、集合框架和泛型

1.集合框架

(1)定义:java中的集合是指一系列存储数据的接口和类,这些类和接口都位于java.util包

(2)原因(为什么使用集合框架):a、数组的大小是固定的;b、数组保存数据类型是单一的;

c、数组操作数据比较复杂

(3)分类:主要有Collection、Map两个接口组成。

Collection接口是集合中最大的接口(与Map接口是等级并列关系)

Collection接口的常用方法,所有的List Set都有这些方法

<1>Collection 接口存储一组不唯一、无序的对象.

<2>List 接口存储一组不唯一、有序的对象.

<3>Set 接口存储一组唯一、无序的对象.

<4>Map 接口存储一组键值对象, 提供key-value(k-v)的映射.

<5>Iterator:迭代器.

<6>Collections:工具类.(提供了对集合进行排序、遍历等多种算法实现)

2、List 接口.

List 接口的实现类:

<1>ArrayList:实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素效率高.

*常用方法:

<2>LinkedList:采用了链表存储方式,插入、删除元素是效率较高.

*常用方法:

3、Set接口

<1>存储唯一、无序的对象.

<2>Set 里面存放的是对象的引用.

<3>采用equals()方法比较两个对象是否为同一对象.

<4>Set是接口,没法new,不存在get()方法(因为set无序)

set接口中的数据不能通过下标去访问

遍历集合:转换成数组增强型for 迭代器

Set 接口的实现类: HashSet

HashSet集合的特点:集合内的元素是无序排列的

HashSet类是非线性安全的

允许集合元素值为null

4、Iterator接口

<1>增强型for

<2>迭代器Iterator

*获取Iterator:Collection 接口的iterate()方法.

*Iterator 的方法:

*boolean hasNext(): 判断是否存在另一个可访问的元素.

*Object next(): 返回要访问的下一个元素.

5、Map 接口.

Map 接口存储一组成对的键key 值value

Key:唯一无序value:不唯一无序

(1) 以键值对形式存储数据(2)不允许出现重复键(3) 元素存储顺序无序Map 接口实现类:

<1>HashMap.

*常用方法:

<2>遍历Map 集合:

*增强型for

*迭代器Iterator

获得Map 键和值的方式:

<1>keySet() --Set

迭代这个Set(Iterator)

get(key)

<2>entrySet()--Set(Map.Entry)

增强型for(或者Iterator)

getKey()

getValue()

6、泛型.

<1>将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性.

<2>典型的泛型集合: ArrayList HashMap *表示该泛型集合中的元素类型.

*泛型集合中的数据不再转换为Object.

7、Collections类

包含大量的静态方法直接用类名去调

Collections 和Cillection 不同,前者是集合的操作类,后者是集合接口.

Collections 提供的常用静态方法:

<1>sort();排序

<2>binarySearch():查找

<3>max()\min():查找最大\最小值

<4>实现一个类对象之间的比较大小,该类要实现Comparable接口,重写

compareTo()方法

二、实用类

1、枚举:是指由一组固定的常量组成的类型关键字:enum

优点:类型安全易于输出代码清晰

【注】:<1>枚举类型的取值默认为:public static final;

<2>可以定义属性和方法.

<3>构造器必须是私有的.

2、包装类

包装类把基本类型数据转换为对象

基本类型在ng包中都有一个相应的包装类

包装类的作用

提供了一系列实用的方法

集合不允许存放基本数据类型数据,存放数字时,要用包装类型

<1>构造方法.

所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例.

public Type(type value)

如:Integer i=new Integer(1);

除Character 类外,其他包装类可将一个字符串作为参数构造它们的实例.

public Type(String value)

如:Integer i=new Integer("123");

【注】:

*Number 类型的构造时,参数必须能转换为相应的数字,不然NumberFormatException 异常.

*Boolean 类型构造方法参数为String 类型时,若该字符串内容为true(不考虑大小写)则Boolean 对象表示true,否则全都是false.

<2>**Value():

*Number 包装类型转换为基本数据类型.(Byte、Short、Integer、Long、Float、Double) *Boolean 包装类型转换为基本数据类型.

*Character 包装类型转换为基本数据类型(charValue()).

<3>toString():以字符串形式返回包装对象表示的基本类型数据.

<4>valueOf():包装类型

*所有包装类valueOf(type type)

*包装类valueOf(String s) ->除Character 之外

<5>parse**():把字符串转换为相应的基本数据类型数据(Character 除外).

<6>装箱:基本-->包:基本类型转换为包装类的对象.

拆箱:包--->基本:包装类对象转换为基本类型的值.

包装类的特点:

JDK1.5后,允许基本数据类型和包装类型进行混合数学运算

包装类并不是用来取代基本数据类型的

在基本数据类型需要用对象表示时使用

3、Math类

提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率)4、Random类

生成随机数:Math.random(); java.util.Random类

*random():0(包括)-1(不包括)之间的随机浮点数*Random random=new Random(种子); random.nextInt();返回下一个伪随机数,整型的.

5、String类

<1>length():确定字符串的长度,返回字符串中的字符数.

<2>equals():比较存储在两个字符串对象的内容是否一致.返回boolean 类型的值. equals():检查组成字符串内容的字符是否完全一致

equalsIgnoreCase():忽略大小写

toLowerCase():转换为小写.

toUpperCase():转换为大写.

<3>equals()与==

==比较的是两个字符串对象在内存中的地址,判断是否为同一个字符串对象

而equals()比较的是两个字符串对象的值

相关文档
最新文档