Object类、包装类、集合类

Object类、包装类、集合类,第1张

Object类、包装类、集合类

目录

一、Object类

1.1 Object类的特点

1.2 toString()方法

1.3 equals方法

二、包装类

三、集合类

3.1 List接口

3.2 Set接口

3.3 Map接口


一、Object类 1.1 Object类的特点

Object类:是所有类的默认父类(不需要使用extends显示继承),因此Object类的所有方法(private除外),所有类的对象都能用。

 Java中对Object类做了扩充,Object类不仅是所有类的父类,只要是引用数据类型,都可以向上转型变为Object,包括数组和接口。Object类型可以接收所有引用数据类型。

 Object是引用数据类型的最高参数统一化,如果你设计的方法需要接收所有引用数据类型,类型声明为Object。

1.2 toString()方法

toString()方法:将任意对象转为字符串输出,打印对象内容,System.out.println()接受任意对象并输出,默认调用的就是toString()方法。

toString()方法源码:

使用toString()方法:

1.3 equals方法

equals方法:比较两个对象是否相等,默认比较当前对象(this表示当前对象的引用)与传入的对象地址是否相等。

使用equals方法:

此时Student类默认使用的Object提供的equals方法,虽然student和student1的属性值相等,但是他们地址不同,默认equals方法只比较地址,所以返回false。

若需要让Student类的equals方法按照属性值比较,需要覆写equals方法 :

二、包装类

包装类:就是将八大基本类型封装为类。Object类可以接收所有引用类型,为了让Object接收Java中一切内容,就把基本类型封装为类。

自己实现的包装类:

JDK内置的包装类:

1、对象型包装类(Object类的直接子类):Boolean(boolean)、Character(char)

2、数值型包装类(Number类的直接子类): Byte、Short、Integer、Long、Float、Double

Integer:

装箱:将基本类型变为包装类对象

拆箱:将包装类对象中的数值还原为基本类型

JDK提供的自动装箱、拆箱:

注意:

a.对于基本类型而言,默认值是数值,而对于包装类而言,默认值是null 

阿里编码规约:

1.在类中定义成员变量,必须使用包装类声明

2.方法中大量进行算数运算,使用基本类型

b.关于包装类的对象比较,使用equals

对于包装类而言(以int为例),自动装箱前,JVM会创建一个缓存处理,对于[-128,127]的取值,Integer会缓存对象(形如String常量池) ,所以“==”比较的是两个包装类对象的地址是否相等,要比较值,就要使用equals方法。

 包装类和String的相互转换:

①包装类->String:使用String.valueOf

②String->包装类:使用包装类的parse***();

三、集合类 3.1 List接口

List接口(线性表接口):ArraysList(动态数组-要保存的元素个数不确定,动态变化),linkedList(链表)

常见方法:

List(线性表):

 ArrayList(顺序表):

 linkedList(链表):

 使用如下:

 List集合的遍历:使用for-each循环。

3.2 Set接口

Set接口:一次存储一个不重复的元素,进行元素去重处理,Set接口是List接口的子接口,只是元素插入有了不重复的限制,其他用法和List差不多,元素的添加顺序和插入顺序没有太大关系。

Set接口的add方法的源码:

当向Set中添加了一个不重复的元素,返回true,若Set中已有添加元素,无法再次添加,返回false。

使用HashSet时,元素的插入顺序和实际存储顺序无关:

 

若要元素的插入顺序和实际存储顺序相同,使用linkedHashSet:

3.3 Map接口

Map接口:Map接口是一个映射关系,一次存储两个元素 key=value 的关系(键值对元素),key不重复,value可能重复,一个key一定对应一个value,拿着key找value。例如学号和姓名的关系。

Map的添加/修改方法:

put(K key,V value):将key和对应的value存储到Map中,若key已经存在,则更新value值为新插入的值。key在Map中不存在,则是添加,若key不存在,则是修改。

查找:

①根据指定的key值查找value:根据key取出映射的value,若key不存在,返回null

 

根据key取出映射的value,若key不存在,返回默认值:

②判断key或者value是否存在:

判断当前Map中是否包含指定key值 判断当前Map中是否包含指定value值

删除: 

根据key删除整个键值对,删除key所在的键值对,返回删除前key对应的value值,若不存在key,返回null。

Map集合的遍历:

①获取当前Map中的所有key集合

因为Map中key是唯一的,返回的是Set集合。 

②获取当前Map中的所有value集合 

因为Map中value是可以重复的,返回Collection(List的父接口)。

③依次取出Map中一个个键值对进行遍历

此时需要将Map集合转为Set集合后进行遍历:

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5715820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存