Java基础(九):封装类自动装箱拆箱,Set集合,Map集合

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、封装类

在Java中,每个基本数据类型都有一个对应的封装类,封装类可以将基本数据类型转化为对象,以便于在面向对象的编程中使用。Java中的封装类有以下几种:

Byte:封装byte类型

Short:封装short类型

Integer:封装int类型

Long:封装long类型

Float:封装float类型

Double:封装double类型

Boolean:封装boolean类型

Character:封装char类型
通过封装类,我们可以将基本数据类型转化为对象,以便于在面向对象的编程中使用。

在Java中,封装类不仅仅是将基本数据类型转化为对象,还提供了一些方法,以方便我们对数据进行操作。例如,Integer类提供了intValue()方法,可以将Integer对象转化为int类型的值;Double类提供了doubleValue()方法,可以将Double对象转化为double类型的值。此外,封装类还提供了一些静态方法,例如,Integer类提供了parseInt()方法,可以将字符串转化为int类型的值。

二、自动拆箱与装箱

自动拆箱和装箱可以方便地进行基本数据类型和封装类之间的转换,但需要注意一些细节。例如,当自动拆箱时,如果封装类为null,则会抛出NullPointerException异常;当自动装箱时,如果值超出了封装类的范围,例如,Integer的范围为-128到127,如果值超出了这个范围,则会创建一个新的对象。
下面是一个例子:

Integer num1 = 10; // 自动装箱,相当于 Integer num1 = Integer.valueOf(10);
int num2 = num1; // 自动拆箱,相当于 int num2 = num1.intValue();
Integer num3 = null;
int num4 = num3; // 抛出NullPointerException异常
Integer num5 = 128;
Integer num6 = 128;
System.out.println(num5 == num6); // false,因为超出了Integer的范围,创建了两个不同的对象

三、 Set集合及其实现类

Set集合代表了无序、不重复的集合,可以用于去重和快速查找。其中,HashSet是最常用的实现类,它是基于哈希表实现的,可以快速地进行插入、删除和查找。但是,由于哈希表的数据结构,HashSet中的元素是无序的。如果需要有序的Set集合,可以使用TreeSet或LinkedHashSet。
下面是一个例子:

Set<String> set = new HashSet<>();
set.add("apple");
set.add("orange");
set.add("banana");
set.add("orange"); // 重复元素会被忽略
System.out.println(set); // [banana, orange, apple]

四、 Map集合及其实现类

Map集合代表了一组键值对映射,可以用于存储和快速查找数据。其中,HashMap是最常用的实现类,它是基于哈希表实现的,可以快速地进行插入、删除和查找。但是,由于哈希表的数据结构,HashMap中的键值对是无序的。如果需要有序的Map集合,可以使用TreeMap或LinkedHashMap。
下面是一个例子:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("orange", 2);
map.put("banana", 3);
System.out.println(map.get("apple")); // 1

五、 Set集合和Map集合的常用方法

Set集合和Map集合都提供了一些常用的方法,可以方便地操作集合中的元素。以下是一些常用的方法:

1.Set集合

add(E element):向集合中添加元素。

remove(Object element):从集合中删除元素。

contains(Object element):判断集合中是否包含某个元素。

size():返回集合中元素的个数。

isEmpty():判断集合是否为空。

2.Map集合

put(K key, V value):向Map中添加键值对。

get(Object key):根据键获取对应的值。

remove(Object key):根据键删除键值对。

containsKey(Object key):判断Map中是否包含某个键。

containsValue(Object value):判断Map中是否包含某个值。

keySet():返回Map中所有键的Set集合。

values():返回Map中所有值的Collection集合。
下面是一个例子:

Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
System.out.println(set.contains(2)); // true
set.remove(2);
System.out.println(set); // [1, 3]
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("orange", 2);
map.put("banana", 3);
System.out.println(map.containsKey("apple")); // true
System.out.println(map.values()); // [1, 2, 3]

六、总结

Java中的封装类不仅仅是将基本数据类型转化为对象,还提供了一些方法,以方便我们对数据进行操作。自动拆箱和装箱可以方便地进行基本数据类型和封装类之间的转换,但需要注意一些细节。==Set集合代表了无序、不重复的集合,可以用于去重和快速查找;Map集合代表了一组键值对映射,可以用于存储和快速查找数据。==它们都有多种实现类,可以根据需要选择。Set集合和Map集合都提供了一些常用的方法,可以方便地操作集合中的元素。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值