04 Java API

来源:互联网 发布:为什么运营商封80端口 编辑:程序博客网 时间:2024/04/28 11:09

四、Java API

1.String类

1)String类概述

str.length();str.charAt(in index);indexOf(int ch); indexOf(int ch,int fromIndex);lastIndexOf(int ch);boolean contains(str);1. 获取length();charAt(x);indexOf('a');lastIndexOf('a');indexOf('a',3);2. 判断contains(str);isEmpty()startsWith(str);endsWith(str);equals(str);equalsIgnoreCase(str);3. 转换new String(byte[] arr,0,len);valueOf( x  );copyValueOf();toCharArray(str);getBytes(str);4. 替换replaceAll(old,new);//正则5. 切割split(regex);6. 子串substring(begin,end);7. 转换大小写、去空格(首尾)、自然顺序比较toUpperCase();toLowerCase();trim();compareTo(str);

2)StringBuffer

  1. 容器
  2. CURD
    多线程
StringBuffer特有方法StringBuffer append(int x);StringBuffer delete(int start, int end );StringBuffer insert(int index,String str);StringBuffer reverse();

JDK1.5出现一个StringBuilder,区别是
StringBuffer是同步的,StringBuilder是非同步
的。

3)StringBuilder

单线程,效率高

2.集合框架

1)概述

1
2

2)List

Collection
|–List:元素是 有序 的,元素 可以重复 。因为该集合体系有索引。
  |– ArrayList :底层使用数组结构。特点: 查询速度快 ,但是增删慢。线程不同步
  |– LinkedList :底层使用链表数据结构。特点: 增删快 ,查询慢
  |– Vector :底层是数组数据结构。线程同步。被ArrayList替代
|– Set :元素是 无序 ,元素 不可以重复 。

List:
特有方法:凡是可以操作角标的方法都是该体系特有的方法

增     add(index,element);     addAll(index,Collection);删     remove(index);改     set(index,element);查     get(index);     subList(from,to);     listIterator();

List集合特有的迭代器,ListIterator是Iterator的子接口
在迭代时不可以通过集合对象的方法操作集合中的元素,
会发生ConcurrentModificationException异常
所以,在迭代器中,只能用迭代器的方法操作元素,只能
对元素进行判断,取出,删除的操作。
如果想要其他操作如添加,修改等,就需要使用其子接口
ListIterator
该接口只能通过List集合的listIterator方法获取

3)Set

|– Set :元素是无序(存入和取出的顺序不一定一致),元素不可以重复
  |– HashSet :底层数据结构是 哈希表 。 存取快
HashSet是如何保住元素的唯一性的呢?
* 是通过元素的两个方法,先 hashCode() ,再 equals()

注意,对于判断元素是否存在,以及删除等操作,依赖的方法是
元素的hashCode和equals方法。
  |– TreeSet :线程不安全,可以对Set集合中的元素进行 排序
* 通过 compareTo()或者compare() 方法中的来保证元素的唯一性。元素是以 二叉树 的形式存放的。

4)Map集合

(1)Map与Collection

  1. Map与Collection在集合框架中属并列存在
  2. Map存储的是 键值对
  3. Map存储元素使用 put方法 ,Collection使用 add方法
  4. Map集合没有直接取出元素的方法,而是 先转成Set集合 ,再 通过迭代获取元素
  5. Map集合中 键 要保证 唯一性

(2)Map集合常用类

  1. Hashtable :线程安全,速度慢, 不允许存放null键 ,null值,已被HashMap替代。
  2. HashMap :线程 不安全 , 速度快,允许存放null键,null值 。
  3. TreeMap :对键进行 排序 ,排序原理与TreeSet相同。

(3)TreeMap

3.泛型

JDK1.5 以后出现的机制
泛型的 特点

  1. 提高了程序的 安全性
  2. 将运行期遇到的问题转移到了编译期
  3. 省去了类型强转的麻烦
  4. 泛型类的出现优化了程序设计

4.Collections

  1. 对集合进行查找
  2. 取出集合中的最大值,最小值
  3. 对List集合进行排序

5.Arrays

  1. 将数组转成List集合
  2. 对数组进行排序
  3. 对数组进行二分查找

6.集合转数组

7.增强for循环

JDK1.5 后出现
Collection在JDK1.5后出现的父接口Iterable就是提供了这个for语句。

格式:

for(数据类型变量名 : 数组或集合){执行语句;}

简化了对数组,集合的遍历

8.可变参数

返回值类型     函数名(参数类型… 形式参数){执行语句;}

其实接收的是一个数组,可以指定实际参数个数

9.静态导入

10.其他对象

  1. System
  2. Runtime
  3. Date
  4. Calendar
  5. Math-Random
0 0
原创粉丝点击