java进阶打卡03

StringBuilder类和String类的转换

1. String --> StringBuilder:可以使用StringBuilder的构造方法
(1)StringBuilder(String str)   构造一个字符串生成器,并初始化为指定的字符串内容
例如:	String str = "Hello";
		StringBuilder bu = new StringBuilder(str);

2. StringBuilder --> String:可以使用StringBuilder中的toString方法
(2)public String toString():将当前StringBuilder对象转换为String对象
例如:	String s = bu.toString();

包装类

基本数据类型的数据,使用起来非常的方便,但是没有对应的方法来操作这些数据。
所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类。
在包装类中可以定义一些方法,用来操作基本类型的数据。

  • 装箱与拆箱
装箱:把基本类型的数据,包装到包装类中(基本类型的数据 --> 包装类)
1. 构造方法:
(1)Integer(int value)  构造一个新分配的Integer对象,它表示指定的int值
例如:	Integer in1 = new Integer(1);
        System.out.println(in1); // 1         
注意:方法上有横线,说明方法过时了

(2)Integer(String s)   构造一个新分配的Integer对象,它表示String参数所指示的int值
注意:传递的字符串,必须是整数类型的字符串,否则会抛出异常:NumberFormatException 数字格式化异常			"100" 正确    "a" 抛异常
例如:	Integer in2 = new Integer("1");
        System.out.println(in2); // 1	
 注意:方法上有横线,说明方法过时了
            
2. 静态方法:
(1)static Integer valueOf(int i)   返回一个表示指定的int值的Integer实例
例如:	Integer in3 = Integer.valueOf(1);
        System.out.println(in3);//1
        
(2)static Integer valueOf(String s)    返回保存指定的String的值的Integer对象
例如:	Integer in4 = Integer.valueOf("1");
        System.out.println(in4);

拆箱:在包装类中取出基本类型的数据(包装类 --> 基本类型的数据)
1. 成员方法:
(1)int intValue()  以int类型返回该Integer的值
例如:	int i = in1.intValue();
        System.out.println(i);//1

基本类型    包装类(引用类型,包装类都位于java.Lang包下)
byte        Byte
short       Short
int         Integer     【特殊】
long        Long
float       Float
double      Double
char        Character   【特殊】
boolean     Boolean
  • 自动装箱与自动拆箱
基本类型的数据和包装类之间可以自动的相互转换	JDK1.5之后出现的新特性

1. 自动装箱:直接把int类型的整数赋值给包装类
例如:	Integer in = 1;
       // 相当于 Integer in = new Integer(1);       
2. 自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本类型的数据,再参与运算
例如:	in = in + 2;
		// in + 2; 就相当于  in.intValue() + 3 = 3;
       //  in = in + 2; 就相当于 in = new Integer(3) 自动装箱

注意:ArrayList集合无法直接存储整数,可以存储Integer包装类
例如:	ArrayList<Integer> list = new ArrayList<>();
        list.add(1); // 自动装箱 list.add(new Integer(1));
        int a = list.get(0); // 自动拆箱 list.get(0).intValue();
  • 基本类型与字符串之间的转换
1. 基本类型 --> 字符串
(1)基本类型数据的值+""      最简单的方式(工作中常用)
例如:	String s1 = 100 + "";
        System.out.println(s1 + 200); // 100200
        
(2)使用包装类中的静态方法
	static String toString(int i)   返回一个表示指定整数的String对象
例如:	String s2 = Integer.toString(100);
        System.out.println(s2 + 200); // 100200	

(3)使用String类中的静态方法
    static String valueOf(int i)    返回int参数的字符串表示形式
例如:	String s3 = String.valueOf(100);
        System.out.println(s3 + 200); // 100200

2. 字符串 --> 基本类型
    使用包装类的静态方法parseXX("字符串")
        Integer类:   static int parseInt(String s)
        Double类:    static double parseDouble(String s)
        ...
例如:	int i = Integer.parseInt("100");
        System.out.println(i + 200); // 300
		int i2 = Integer.parseInt("a"); // NumberFormatException  数字格式化异常
        System.out.println(i2);

集合框架

集合:集合是java中提供的一种容器,可以用来存储多个数据。
集合和数组的区别:
	数组的长度是固定的;集合的长度是可变的。
	数组中可以存储基本类型数据和对象;集合中存储的都是对象。

学习集合的目标:
1. 会使用集合存储数据
2. 会遍历集合,把数据取出来
3. 掌握每种集合的特性

集合框架的学习方式:
1. 学习顶层:学习顶层接口/抽象类中共性的方法,所有的子类都可以使用
2. 使用底层:顶层不是接口就是抽象类,无法创建对象使用,需要使用底层的子类创建对象使用

Collection接口:定义的是所有单列集合中共性的方法,所有的单列集合都可以使用共性的方法,【没有带索引的方法】
List接口:(Vector集合、ArrayList集合、LinkedList集合)
	1. 【有序】的集合(存储和取出元素顺序相同)
	2. 允许存储重复的元素
	3. 【有索引】,可以使用普通的for循环遍历

ArrayList:底层是数组实现的,查询快,增删慢
LinkedList:底层是链表实现的,查询慢,增删快

Set接口:(TreeSet集合、HashSet集合、LinkedHashSet集合)
	1. 不允许存储重复元素
	2. 没有索引(不能使用普通的for循环遍历)
	3. TreeSet集合、HashSet集合	无序的集合(存储和取出元素的顺序有可能不一致)
	    LinkedHashSet集合	有序的集合

HashSet:底层是哈希表+(红黑树)实现的,存取无序
LinkedHashSet:底层是哈希表+链表实现的,可以保证存取顺序
TreeSet:底层是二叉数实现的。一般用于排序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值