目录
包装类(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++]