JAVA程序开发学习日志—DAY11—2022/07/19

本文详细介绍了Java中的包装类(Wrapper)及其与基本类型之间的转换,包括自动装箱和拆箱。此外,还探讨了集合(Collection)接口的基本操作,如添加、删除、查找等方法,以及如何在集合与数组之间转换。内容覆盖了Java编程中的核心概念,对于理解和使用Java数据结构至关重要。
摘要由CSDN通过智能技术生成

目录

包装类(Wrapper)

一、概述

二、转换关系

三、自动装箱和拆箱(autoboxing)

集合

一、Collection:集合的根接口

包装类(Wrapper)

一、概述

1.包装类就是基本类型转化成为对象的类

2.每一个基本类型都有一个与之对应的包装类(wrapper)

基本类型

对应包装类

byte

java.lang.Byte

short

java.lang.Short

int

java.lang.Integer

long

java.lang.Long

float

java.lang.Float

double

java.lang.Double

char

java.lang.Character --直接父类为Object

boolean

java.lang.Boolean --直接父类为Object

二、转换关系

(1)基本类型 --> 包装类     Type.valueOf(type i)

int i = 0;
Integer integer = Integer.valueOf(i);
System.out.println(integer);//0

(2)包装类 --> 基本类型     x.typeValue()

Integer integer1 = 100;
int i1 = integer1.intValue();
double d = integer1.doubleValue();
System.out.println(i1);//100
System.out.println(d);//100.0

(3)基本类型 --> String    String.valueOf(String s)

int j = 1;
String str = String.valueOf(j);
System.out.println(j);//1

(4)String --> 基本类型    Type.parseType(String s)

String str1 = "2";
//String str1 = "2h";//传入的参数String不匹配int:NumberFormatException
int i2 = Integer.parseInt(str1);
System.out.println(i2);//2

(5)String --> 包装类    Type.valueOf(String s)

String str2 = "213";
Integer integer2 = Integer.valueOf(str2);
Double aDouble = Double.valueOf(str2);
System.out.println(aDouble);//213.0
System.out.println(integer2);//213

(6)包装类 --> String   toString()

Integer i3 = 555;
String string = i3.toString();
System.out.println(string);///555

三、自动装箱和拆箱(autoboxing)

基本类型和包装类之间的转换,是自动完成的

//直接写出来的数字默认为int,直接写出来的小数默认为double---直接量

//下面的100和200其实都是int型,但是后台对其做了自动装箱操作

Integer x = 100;// Integer.valueOf(100);自动装箱
Integer y = 200;// Integer.valueOf(200);自动装箱

Integer z = x + y;

/*相当于执行了如下程序
    int x = intValue();//自动拆箱
    int y = intValue();//自动拆箱
    int z = x + y;
    integer z = Integer.valueOf(z);//自动装箱
 */
System.out.println(z);//300

集合

①集合:各种各样的数据结构  程序=算法+数据结构(存储数据的结构)

②数组:存储的是相同类型的元素

一、Collection:集合的根接口

1.Collection中常用方法

//创建Collection对象 —— 多态、向上转型
    /**
     * <E>:泛型
     *  指定当前集合的存储元素类型
     */
    Collection<String> collection =  new ArrayList<String>();

(1)add():添加元素

collection.add("java");
collection.add("c");
collection.add("c++");
collection.add("php");
System.out.println(collection);//[java, c, c++, php]

(2)contains(Object o):是否包含某个元素

System.out.println(collection.contains("java"));//true

(3)containsAll:判断是否包含整个集合

Collection<String> collection_sub = new ArrayList<>();//创建第二个集合,因为该方法参数为集合
collection_sub.add("java");//添加元素
collection_sub.add("php");
collection_sub.add("JavaScript");
System.out.println("当前集合为:" + collection_sub);//当前集合为:[java, php, JavaScript]
System.out.println(collection.containsAll(collection_sub));//false

(4)size():获取集合长度

System.out.println(collection.size());//4

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

System.out.println(collection_sub.isEmpty());//false

(6)remove():移除指定元素

collection_sub.remove("java");
System.out.println("collection_sub:"+collection_sub);//collection_sub:[php, JavaScript]
System.out.println(collection.remove(collection_sub));//false
System.out.println("collection:"+collection);//collection:[java, c, c++, php]

(7)addAll():复制另一个集合

Collection<String> collection2 = new ArrayList<>();
collection2.addAll(collection);
System.out.println("collection2:"+collection2);//collection2:[java, c, c++, php]

(8)removeAll():删除与另一个集合相同的元素

collection2.removeAll(collection_sub);
System.out.println("collection2:"+collection2);//collection2:[java, c, c++]

(9)retainAll():保留当前集合元素,删除其他元素

collection.retainAll(collection2);//保留与collection2相同的元素,去掉其余元素
System.out.println("collection:"+collection);//collection:[java, c, c++]

(10)clear():清空集合

collection2.clear();
System.out.println("collection2:"+collection2);//collection2:[]

(11)toArray()——toArray(T[] t):将集合转换为数组

//方法一:常用     toArray(T[] t):参数为转换后数组的指定类型
System.out.println(collection);//[java, c, c++]
String[] strings = collection.toArray(new String[]{});
//String[] strings = collection.toArray(new String[collection.size()]);
System.out.println(Arrays.toString(strings));//[java, c, c++]



//方法二:重点    toArray()
Object[] objects = collection.toArray();
//怎么把Objects类型数组转为String[]
//String[] strings1 = (String[])objects;//ClassCastException:类转换异常---向下转型
//System.out.println(strings1);
//思路:先取出所有的Object对象,一一转为String类型再存储到String类型的数组中
String[] strings1 = new String[objects.length];
for (int i = 0; i < strings1.length; i++) {
    strings1[i] = (String)objects[i];
}
System.out.println(Arrays.toString(strings1));//[java, c, c++]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值