1 Arrays
Arrays类概述
针对数组进行操作的工具类。
提供了排序,查找等功能。
成员方法
public static String toString(int[] a)
public static void sort(int[] a)
public static int binarySearch(int[] a,int key)
只要是数组,都可以System.out.pringln(Arrays.toString(arr))直接将数组输出来,输出字符串格式
2 基本类型包装类
为什么会有基本类型包装类
为了对基本数据类型进行更多的操作,更方便的操作,java就针对每一种基本数据类型提供了对应的类类型.
基本类型和包装类的对应
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
3 Integer类
构造方法
public Integer(int value)
public Integer(String s)
String和int类型的相互转换
A:int -- String
a:和""进行拼接
b:public static String valueOf(int i) 直接类名String.valueOf(int i)静态得到一个String对象
c:int -- Integer -- String
d:public static String toString(int i) 先将int转为Integer,然后调用方法toString
B:String -- int
a:String -- Integer -- intValue(); 通过Integer构造方法,将String作为参数,创建Integer对象,然后调用intValue(),即可得int
b:public static int parseInt(String s) 直接类名Integer调用parselnt静态方法,得到int型
4 自动装箱与拆箱
自动装箱:把基本类型转换为包装类类型
自动拆箱:把包装类类型转换为基本类型
Integer ii = 100;
ii += 200; 先拆箱计算再装箱赋值
注意事项
在使用时,Integer x = null;代码就会出现NullPointerException。
建议先判断是否为null,然后再使用。
面试题
A:Integer的面试题
看程序写结果
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
System.out.println("-----------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
System.out.println("-----------");
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);//false 因为 超过了一个字节的范围 会new 一个Integer对象
System.out.println(i5.equals(i6));
System.out.println("-----------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);//true 没有超过一个字节的范围 因为在方法区中存在一个 字节常量池 范围-128---127
System.out.println(i7.equals(i8));
5 集合Collection
数组和集合的区别
(1): 长度区别:
数组的长度是固定的而集合的长度是可变的
(2): 存储数据类型的区别:
数组可以存储基本数据类型 , 也可以存储引用数据类型; 而集合只能存储引用数据类型
(3): 内容区别:
数组只能存储同种数据类型的元素 ,集合可以存储不同类型的元素
Collection的功能
a:添加功能
boolean add(Object obj):添加一个元素
boolean addAll(Collection c):添加一个集合的元素 (给一个集合添加进另一个集合中的所有元素)
b:删除功能
void clear():移除所有元素
boolean remove(Object o):移除一个元素
boolean removeAll(Collection c):移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素 ,如果没有交集元素 则删除失败 返回false
c:判断功能
boolean contains(Object o):判断集合中是否包含指定的元素
boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(这个集合 包含 另一个集合中所有的元素才算包含 才返回true)
boolean isEmpty():判断集合是否为空
d:长度功能
int size():元素的个数
面试题:数组有没有length()方法呢?没有,数组只有属性length字符串有没有length()方法呢?有集合有没有length()方法呢?集合没有length().集合有size()
e:交集功能
boolean retainAll(Collection c):获取两个集合的交集元素(交集:两个集合都有的元素)
f:把集合转换为数组
Object[] toArray()
Collection集合的遍历
1 把集合转成数组toArray(),遍历这个数组 可以实现集合的遍历。
2 对 collection 进行迭代的迭代器Iterator
6 List集合
List概述及特点: 元素有序,并且每一个元素都存在一个索引.元素可以重复.
List集合的特有功能概述
void add(int index,E element): 在指定索引处添加元素
E remove(int index):移除指定索引处的元素 返回的是移除的元素
E get(int index):获取指定索引处的元素
E set(int index,E element):更改指定索引处的元素 返回的而是被替换的元素
List集和遍历
1 把集合转成数组toArray(),遍历这个数组 可以实现集合的遍历。
2 List集合存储学生对象并遍历。通过size()和get()方法结合使用遍历。
3 迭代器遍历,ListIterator 继承自Iterator 可以使用Iterator中的方法
7 并发修改异常产生的原因及解决方案
解决方案1
解决方案2
使用for循环遍历集合 添加元素 不会报错
8 常见数据结构
栈 , 队列 , 数组 , 链表 , 树 , 哈希表、
特点
栈特点: 先进后出
队列: 先进先出
数组特点: 查询快 , 增删慢
链表特点: 查询慢 , 增删快
List的三个子类的特点
ArrayList:
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector:
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
LinkedList:
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
List有三个儿子,我们到底使用谁呢?
得看 要安全还是要效率
是查找多还是增删多
9 注意
1

2