Java常用类

Java常用类

1.Random类

用来生成随机数字。
1.导包
import java.util.Random
2.创建
Random r = new Random();
3.使用
nextInt(int n) 参数代表范围,左闭右开空间

2.ArrayList类

基本信息

1.数组的长度不可以发生改变,但是ArrayList集合的长度是可以随意变化的。
2.对于ArrayList来说,有一个尖括号代表泛型。
泛型:也就是装在集合中的所有元素,全都是统一的什么类型。
注意:泛型只能是引用类型,不能是基本类型。
3.对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。如果内容是空,得到的是空的中括号。

常用方法

1.public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。
注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用;但是对于其他集合来说,add添加动作不一定成功。
2.public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
3.public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。
4.public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数。

注意

1.如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
byte/short/long/float/double/boolean首字母大写
int->Integer/char->Character
2.从JDK1.5开始,支持自动装箱、自动拆箱。
装箱:基本类型->包装类型
拆箱:包装类型->基本类型
自动装箱与自动拆箱:基本类型的数据和包装类之间可以自动相互转换。

3.字符串

基本信息

1.字符串的内容永不可变。
2.正是因为字符串不可改变,所以字符串是可以共享使用的。
3.字符串效率上相当于是char[]字符数组,但是底层原理是byte[]字节数组。

常用方法

1.创建字符串的常见3+1种方式。
三种构造方法:

  • public String();创建一个空白字符串,不含有任何内容;
  • public String(char[] array):根据字符数组的内容,来创建对应的字符串;
  • public String(byte[] array):根据字节数组的内容,来创建对应的字符串。
    一种直接创建:
  • String str = “Hello”;//右边直接用双引号

2.如果需要字符串的内容比较,可以使用两个方法:

  • public boolean equals(Object obj):参数可以使任何对象,只有参数是一个字符串并且内容相同的才会给true,否则返回false。
  • public boolean equalsIgnoreCase(String str):忽略大小写,进行内容比较。

3.String当中与获取相关的常用方法:

  • public int length():获取字符串中含有的字符个数。
  • public String concat(String str):将当前字符串和参数字符串拼接成为新的字符串并返回。
  • public char charAt(int index):获取指定索引位置的单个字符。(索引从0开始)
  • public int indexOf(String str):查找参数字符串在本字符串中首次出现的索引位置,如果没有返回-1值。

4.字符串的截取方法:

  • public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串。
  • public String substring(int begin, int end):截取从begin开始,一直到end结束,中间的字符串。[begin,end)

5.String当中与转换相关的常用方法:

  • public char[] toCharArray():将当前字符串拆分成为字符数组作为返回值。
  • public byte[] getBytes():获得当前字符串底层的字节数组。
  • public String replace(CharSequence oldString, CharSequence newString):将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串。(CharSequence意思就是说可以接收字符串类型。)

6.分割字符串的方法:

  • public String[] split(String regex):按照参数的规则,将字符串切割成若干部分。

注意

1.直接写上双引号,就是字符串对象。
2.字符串常量池(在堆中):程序当中直接写上的双引号字符串,就在字符串常量池中。
3.对于基本类型来说,==是进行数值的比较;对于引用类型来说,==是进行地址值的比较。
关于equals方法:
4.任何对象都能用Object进行接收。
5.equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。
6.如果比较双方一个常量一个变量,推荐把常量字符串写在前面。即:“abc”.equals(str) 推荐 防止空指针异常。
关于split方法:
7.split方法的参数其实是一个正则表达式,如果按照英文句点".“进行切分,必须写”\."(两个反斜杠)。

4.Arrays类

基本信息

1.java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作。

常用方法

1.public static String toString(数组):将参数数组变成字符串(按照默认格式:[元素1,元素2,元素3…])
2.public static void sort(数组):按照默认升序(从小到大)对数组的元素进行排序。
备注:如果是数值,sort默认按照升序从小到大;如果是字符串,sort默认按照字母升序;如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持。

5.Math类

常用方法

1.public static double abs(double num):获取绝对值。
2.public static double ceil(double num):向上取整。
备注:double也可以++。
3.public static double floor(double num):向下取整。
4.public static long round(double num):四舍五入。
5.Math.PI代表近似的圆周率常量。

6.Object类

基本信息

1.java.lang.Object类是java语言中的根类,即所有类的父类,所有对象(包括数组)都实现这个类的方法。

常用方法

1.String toString():返回该对象的字符串表示。(直接打印对象的名字,其实就是调用对象的toString方法。)重写前打印的是包名类名@地址值,一般需要重写该方法。
2.public boolean equals(Object obj) :重写前:对于基本类型来说,进行数值的比较;对于引用类型来说,进行地址值的比较。重写时需要向下转换。

注意

1.如果想知道一个类是否重写了toString方法,直接打印这个类对应对象的名字即可。如果没有重写,打印的就是对象的地址值。

7.Objects类

常用方法

1.equals方法:比较两个对象是否相同,但是加了一些健壮性的判断(防止空指针异常)。

public static boolean equals(Object a, Object b) {
	return (a == b) || (a != null && a.equals(b));
}

8.Date类

基本信息

1.java.util.Date类:表示特定的瞬间,精确到毫秒。

常用方法

1.构造方法:

  • Date():获取当前系统的日期和时间;
  • Date(long date) :使用给定的毫秒时间值构造一个 Date对象。
    2.getTime():将日期转换为毫秒(相当于System.currentTimeMillis())。

9.Calendar类

基本信息

1.java.util.Calendar:是一个抽象类,其中提供了很多操作日历字段的方法(YEAR,MONTHYEAR,MONTH,DAY_OF_MONTH,HOUR )。

常用方法

1.static Calendar getInstance():使用默认时区和语言环境获得一个日历。
注意:Calendar类无法直接创建对象使用。可以调用静态方法getInstance(),该方法返回了Calendar类的子类对象。
2.public int get(int n):获取指定日历字段信息。
3.public void set(int field, int value):将给定的日历字段设置为给定值。
4.public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。

10.System类

常用方法

静态方法,直接调用
1.currentTimeMillis():获取当前系统毫秒值时间。
2.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :将指定源数组中的数组从指定位置复制到目标数组的指定位置。

11.StringBuilder类

基本信息

1.字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串),底层也是一个数组,但是没有被final修饰,可以改变长度。
2.StringBuilder在内存中始终是一个数组,占用空间少,效率高。如果超出了StringBuilder的容量,会自动扩容。

常用方法

1.构造方法

  • StringBuilder():创建一个空的字符串缓冲区对象;
  • StringBuilder(String s):根据传入的内容创建一个字符串缓冲区对象。

2.成员方法:

  • StringBuilder append(Object obj):添加内容;
  • StringBuilder reverse():反转内容;
  • String toString():将缓冲区内容转为字符串。

12.包装类

基本信息

1.用一个类把基本数据类型包装起来,这个类叫包装类,在包装类中可以定义一些方法,用来操作基本类型的数据。
(见ArrayList类)

常用方法

1.基本类型->字符串

  • 基本数据类型的值+""
  • 使用包装类中的静态方法:
    static String toString(int i):返回一个表示指定证数的String对象。
  • 使用String类中的静态方法
    static String valueOf(int i):返回int参数的字符串表示形式。

2.字符串->基本类型

  • 使用包装类中的静态方法parseXX(“字符串”)
    如:Integer类:static int parseInt(String s)

13.Collection接口

基本信息

1.集合是java中提供的一种容器,可以用来存储多个数据。
2.集合与数组的区别

  • 数组长度固定,集合长度可变;
  • 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。

3.Collection接口:单列集合最顶层的接口,定义的是所有单列集合中共性的方法。

extends List接口和Set接口

  • List接口:
    1.有序的集合(存储和取出元素顺序相同);
    2.允许存储重复的元素;
    3.有索引,可以使用普通的for循环遍历。
    4.包含Vector集合/ArrayList集合/LinkedList集合三个子类。
  • Set接口:
    1.不允许存储重复元素;
    2.没有索引(不能使用普通的for循环遍历)
    3.包含两个无序的集合(存储和取出元素的顺序有可能不一致):TreeSet集合/HashSet集合。
    4.HashSet集合下包含有序的LinkedHashSet集合。

常用方法

1.public boolean add(E e):把给定的对象添加到当前集合中。
2.public void clear():清空集合中所有的元素。
3.public boolean remove(E e):把给定的对象在当前集合中删除。
4.public boolean contains(E e):判断当前集合中是否包含给定的对象。
5.public boolean isEmpty():判断当前集合是否为空。
6.public int size():返回集合中元素的个数。
7.public Object[] toArray():把集合中的元素,存储到数组中。

14.Iterator接口(迭代器)

基本信息

1.对集合进行遍历,通用的取出集合中元素的方式。
2.Iterator是一个接口,我们无法直接使用,需要使用其实现类对象。Collection接口中有一个方法叫iterator(),这个方法返回的就是迭代器的实现类对象。
3.使用步骤:

  • 使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收
  • 使用Iterator接口中的方法hasNext判断还有没有下一个元素。
  • 使用Iterator接口中的方法next取出集合中的下一个元素。

常用方法

1.boolean hasNext():判断集合中还有没有下一个元素,有则返回true。
2.E next():取出集合中的下一个元素。

注意

1.增强for循环:用来遍历集合和数组。底层实现也是迭代器,使用for循环的格式,简化了迭代器的书写。
Collectionextends Iterable:所有的单列集合都可以使用增强for循环。
格式:
for(集合/数组的数据类型 变量名:集合名/数组名){
sout(变量名);
}
**tips:**增强for循环必须有被遍历的目标。目标只能是Collection或者数组。增强for仅仅作为遍历操作出现。

15.泛型

基本信息

1.泛型是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型。
2.泛型也可以看成是一个变量,用来接收数据类型。
E e:Element元素
T t:Type类型
3.创建集合对象的时候就会确定泛型的数据类型。(会把数据类型作为参数传递,赋值给泛型E)

泛型的使用

1.泛型类
格式:
类名<泛型名>
2.定义含有泛型的方法:泛型定义在方法的修饰符和返回值类型之间。
格式:
修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){
方法体;
}
含有泛型的方法,在调用方法的时候确定泛型的数据类型,传递什么类型的参数,泛型就是什么类型。
3.泛型的通配符:
?代表任意的数据类型,不能创建对象使用,只能作为方法的参数使用。

16.List接口

基本信息

1.有序的集合,存储元素和取出元素的顺序是一致的;
2.有索引,包含一些带索引的方法;
3.允许存储重复的元素。

常用方法

1.public void add(int index, E element):将指定的元素,添加到该集合中的指定位置上。
2.public E get(int index):返回结合中指定位置的元素。
3.public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素。
4.public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

17.LinkedList集合

基本信息

1.java.util.LinkedList集合:List接口的链表实现,查询慢,增删快。
2.包含大量操作首尾元素的方法。

常用方法

1.public void addFirst(E e):将指定元素插入此列表的开头。
2.public void addLast(E e):将指定元素添加到此列表的结尾,等效于add(E)。
3.public void push(E e):将元素推入此列表所表示的堆栈,等效于addFirst(E)。
4.public E getFirst():返回此列表的第一个元素。
5.public E getLast():返回此列表的最后一个元素。
6.public E removeFirst():移除并返回此列表的第一个元素。
7.public E removeLast():移除并返回此列表的最后一个元素。
8.public E pop():从此列表所表示的堆栈处弹出一个元素,等效于removeFirst()。
6.public boolean isEmpty():如果列表不包含元素,则返回true。

18.Set接口

基本信息

1.java.util.Set接口 extends Collection接口。
2.不允许存储重复的元素。
3.没有索引,没有带索引的方法,也不能使用普通的for循环遍历。
Set里的方法和Collection一样。

19.HashSet集合

基本信息

和Set接口具有一样的性质。
1.java.util.HashSet集合implements Set接口。
2.HashSet是一个无序的集合,存储元素和取出元素的顺序有可能不一致。
3.哈希表=数组+链表/红黑树:把元素进行分组(相同哈希值的元素是一组并将不同哈希值存储在数组中),然后用链表/红黑树(链表长度超过八位时使用)结构把相同哈希值的元素连接到一起。
3.底层是一个哈希表结构(查询的速度非常快)。

注意

1.哈希值:是一个十进制的整数,由系统随机给出(就是对象的地址值,是一个模拟出来的逻辑地址,不是数据实际存储的物理地址)。
2.在Object类中有一个方法int hashCode(),可以获取对象的哈希值。
3.String类重写了hasCode方法。

20.LinkedHashSet集合

基本信息

1.java.util LinkedHashSet集合extends HashSet集合。
2.底层是一个哈希表(数组+链表/红黑树)+链表:多了一条链表(记录元素的存储顺序),保证元素有序。

21.可变参数

基本信息

1.当方法的参数列表数据类型已经确定,但是参数个数不确定,就可以使用可变参数。
2.可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数。
3.传递的参数个数可以是0个(不传递),1,2…多个。

使用格式

1.定义方法时使用
修饰符 返回值类型 方法名(数据类型…变量名){}

注意

1.一个方法的参数列表,只能有一个可以变参数;
2.如果方法的参数有多个,那么可变参数必须写在参数列表的末尾。

22.Collections类

基本信息

1.java.utils.Collections是集合工具类,用来对集合进行操作。

常用方法

1.public static boolean addAll(Collection c, T…elements):往集合中添加一些元素。
2.public static void shuffle(List<?> list):打乱集合顺序。
3.public static void sort(List list):将集合中元素按照默认规则排序。(默认是升序)
4.public static boid sort(List list,Comparator<? super T>):将集合中元素按照指定规则排序。

注意

1.sort(List list)使用前提:被排序的集合里面的元素,必须实现Comparable接口,重写接口中的方法compareTo定义排序规则。
2.Comparable接口的排序规则:自己(this)-参数:升序。
3.Comparable和Comparator的区别

  • Comparable:自己(this)和别人(参数)比较,自己需要实现Comparable接口,重写比较的规则compareTo方法;
  • Comparator:相当于找一个第三方的裁判,比较两个。

23.Map集合

基本信息

1.java.util.Map<k,v>集合:Map是一个双列集合,一个元素包含两个值(一个key,一个value)。
2.Map集合中的元素,key和value的数据类型可以相同,也可以不同。
3.Map集合创建将键映射到值的对象。 一个映射不能包含重复的键(key不允许重复,value可以重复); 每个键可以映射到最多一个值(key和value是一一对应的)。

常用方法

1.public V put(K key, V value):把指定的键与指定的值添加到Map集合中。存储键值对的时候,key不重复,返回值V是null;存储键值对的时候,key重复,会使用新的value替换map中重复的Value,返回被替换的value值。
2.public V remove(Object key):把指定的键所对应的键值对元素在Map集合中删除,返回被删除元素。key存在,v返回被删除的值;key不存在,v返回null。
3.public V get(Object key):返回到指定键所映射的值。
4.boolean containsKey(Object key):判断集合中是否包含指定的键。包含返回true,不包含返回false。
5.Set keySet():把Map集合中所有的key取出来存储到Set集合中。
6.Set<Map.Entry<K,V>> entrySet():把Map集合内部的多个Entry对象取出来存储到一个Set集合中。
7.Map集合的遍历方式:

  • 通过键找值的方式:使用Map集合中的方法keySet(),把Map集合所有的key取出来,存储到一个Set集合中;遍历set集合,获取Map集合中的每一个key;通过Map集合中的方法get(key),通过key找到value。
  • 使用Entry对象遍历:使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中;遍历Set集合,获取每一个Entry对象;使用Entry对象中的方法getKey()和getValue()获取键与值。

24.HashMap类

基本信息

1.java.util.HashMap<k,v> implements Map<k,v>接口。
2.HashMap集合底层是哈希表:查询的速度非常快。
3.jdk1.8之前:数组+单向列表;jd1.8之后:数组+单向链表/红黑树(链表的长度超过8),提高查询速度。
4.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致。

注意

1.Map集合保证key是唯一的:作为key的元素,必须重写hashCode
和equals方法,以保证key唯一。

25.LinkedHashMap类

基本信息

1.java.util.LinkedHashMap<k,v>集合extends HashMap<k,v>集合。
2.LinkedHashMap集合底层是哈希表+链表(记录元素的顺序),保证集合有序,存储元素和取出元素的顺序一致,具有可预知的迭代顺序。

26.Entry接口

基本信息

1.Map.Entry<K,V>:在Map接口中有一个内部接口Entry,当Map集合一创建,就会在Map集合中创建一个Entry对象,用来记录键与值(键值对对象,键与值的映射关系)。

常用方法

1.public K getKey():获取key。
2.public V getValue():获取value。

补充

1.JDK9新特性:
List/Set/Map接口里面增加了一个静态的方法of,可以给集合一次性添加多个元素。
static List of(E…elements)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值