Java中各种类型的转化

目录

一.Integer和int之间的类型转化

1.自动装箱

2.构造器方法

3.Integer.valueOf(int i)

二.Integer和String之间的类型转换

1.String转换为Integer

1.Integer.parseInt(String s)

​编辑

 2.Integer.valueOf(String s)

2.Integer转换为String

1.Integer.toString()

2.String.valueOf(Integer i)

三.不同进制和Integer类型之间的转换

1.Integer.valueOf(String s,int radix)

2.Integer.parseInt(String s,int radix)

四.集合之间类型的转换

1.list和set之间的转换

1.构造器方法

2.流式编程

五.List和Integer数组之间的类型转换

1.List.toArray(new Integer[0])的方法   list-->Integer[]

2.笨方法,一个一个添加     list-->Integer[]

3.Arrays.asList    Integer[]-->List

六.List和int数组之间的类型转换

1.流式编程和Lambda表达式   list---->int数组

七.Set和int数组之间的类型转换

1.流式编程和Lambda表达式

2.一个一个的添加   或者转换为list添加

八.String和StringBuffer和StringBuilder之间的类型转换

1.String到StringBuffer和StringBuilder之间的类型

2.StringBuffer到StringBuilder到String之间的类型

九.BigInteger和Integer和String之间的类型转换

1.BigInter.valueOf(long val)

 2.new BigInteger(String s)

十.String和各种类型的数组之间的类型转换

1.构造器方法

2.Arrays.toString()

十一.Integer数组和int数组之间的转换

1.遍历

十二.集合排序

1.对Map进行排序

2.对List进行排序 

1.Collections.sort()方法

2.流式编程


提示:本文章包含了流式编程和Lambda的一些内容,不明白的可以参考这篇博客

Java8新特性之Lambda表达式和Stream API_允歆辰丶的博客-CSDN博客

一.Integer和int之间的类型转化

1.自动装箱

Integer integer=2;
int a=integer;
integer=a;

2.构造器方法

Integer integer = new Integer(1);

3.Integer.valueOf(int i)

Integer integer = Integer.valueOf(10);

二.Integer和String之间的类型转换

1.String转换为Integer

1.Integer.parseInt(String s)

String s="-12";
System.out.println(Integer.parseInt(s));//-12

注意:当s的值是负值的时候,也可以转换为相应的数值,包含非数字的时候 ,会报错误

 2.Integer.valueOf(String s)

System.out.println(Integer.valueOf("-12"));//-12

2.Integer转换为String

1.Integer.toString()

Integer a=-10;
String s = a.toString();
System.out.println(s);//-10

2.String.valueOf(Integer i)

Integer a=-10;
String s = String.valueOf(a);
System.out.println(s);//-10

三.不同进制和Integer类型之间的转换

1.Integer.valueOf(String s,int radix)

System.out.println(Integer.valueOf("1001", 2));//9
System.out.println(Integer.valueOf("16", 8));//14
System.out.println(Integer.valueOf("AA", 16));//170

2.Integer.parseInt(String s,int radix)

System.out.println(Integer.parseInt("1001", 2));//9
System.out.println(Integer.parseInt("16", 8));//14
System.out.println(Integer.parseInt("AA", 16));//170

四.集合之间类型的转换

1.list和set之间的转换

1.构造器方法

set--->list

HashSet<Integer> integers = new HashSet<>();
ArrayList<Integer> list = new ArrayList<>(integers);

list-->set

ArrayList<Integer> list = new ArrayList<>();
HashSet<Integer> integers = new HashSet<>(list);

2.流式编程

set--->list

ArrayList<Integer> list = new ArrayList<>();
Set<Integer> set = list.stream().collect(Collectors.toSet());

list-->set

HashSet<Integer> set = new HashSet<>();
List<Integer> list = set.stream().collect(Collectors.toList());

map->list

List<Entry<Integer, Integer>> collect = map.entrySet().stream().collect(Collectors.toList());

list->map 

ArrayList<Integer> list = new ArrayList<>();
//如果a和b的key相同,返回a的value
Map<Integer, Integer> collect2 = list.stream().collect(Collectors.toMap(a -> a, a -> 0, (a, b) -> a));

 

ArrayList<Entry<String,Integer>> list = new ArrayList<>();
Map<Integer, Integer> collect1 = map.entrySet().stream().collect(Collectors.toMap(a -> a.getKey(), a -> a.getValue(),(a,b)->a));

五.List和Integer数组之间的类型转换

1.List.toArray(new Integer[0])的方法   list-->Integer[]

ArrayList<Integer> list = new ArrayList<>();
Integer[] integers = list.toArray(new Integer[0]);

2.笨方法,一个一个添加     list-->Integer[]

ArrayList<Integer> list = new ArrayList<>();
int[] ints=new int[list.size()];
for(int i=0;i<ints.length;++i){
    ints[i]=list.get(i);
}

3.Arrays.asList    Integer[]-->List

Integer[] integer={1,2,3};
List<Integer> list = Arrays.asList(integer);

注意:基本数据类型的数组无法转换为List

六.List和int数组之间的类型转换

1.流式编程和Lambda表达式   list---->int数组

ArrayList<Integer> list = new ArrayList<>();
int[] ints = list.stream().mapToInt(x -> x).toArray();

七.Set和int数组之间的类型转换

1.流式编程和Lambda表达式

HashSet<Integer> integers = new HashSet<>();
int[] ints = integers.stream().mapToInt(x -> x).toArray();

2.一个一个的添加   或者转换为list添加

HashSet<Integer> integers = new HashSet<>();
int[] ints=new int[integers.size()];
Iterator<Integer> iterator = integers.iterator();
for(int i=0;i<ints.length;++i){
    ints[i]=iterator.next();
}

八.String和StringBuffer和StringBuilder之间的类型转换

1.String到StringBuffer和StringBuilder之间的类型

构造器方法

String s = new String();
StringBuilder sb = new StringBuilder(s);
StringBuffer stringBuffer = new StringBuffer(s);

2.StringBuffer到StringBuilder到String之间的类型

构造器方法

StringBuilder sb = new StringBuilder();
StringBuffer stringBuffer = new StringBuffer();
String s = new String(sb);
String s = new String(stringBuffer);

九.BigInteger和Integer和String之间的类型转换

1.BigInter.valueOf(long val)

BigInteger bigInteger = BigInteger.valueOf(13L);
System.out.println(bigInteger);//13

 2.new BigInteger(String s)

BigInteger bigInteger = new BigInteger("123");
System.out.println(bigInteger);//123

十.String和各种类型的数组之间的类型转换

1.构造器方法

char[] c={'a','b','c','d'};
String s = new String(c);
System.out.println(s);//abcd

2.Arrays.toString()

int[] ints={1,2,3,4,5};
String s = Arrays.toString(ints);
System.out.println(s);//[1, 2, 3, 4, 5]

注意:此时转换为字符串最好用于打印,不要进行操作,因为存在[]和","

十一.Integer数组和int数组之间的转换

1.遍历

Integer[] arr1 = {1, 2, 3, 4, 5};
int[] arr = new int[5];
for (int i = 0; i < arr1.length; ++i) {
    arr[i] = arr1[i];
} 

十二.集合排序

1.对Map进行排序

HashMap<String, Integer> map = new HashMap<>();
Map<String, Integer> collect = map.entrySet().stream().sorted(new Comparator<Entry<String, Integer>>() {
    @Override
    public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
        return o1.getValue() - o2.getValue();
    }
}).collect(Collectors.toMap(a -> a.getKey(), a -> a.getValue()));

2.对List进行排序 

1.Collections.sort()方法

ArrayList<Integer> list = new ArrayList<>();
list.add(10);
list.add(9);
list.add(18);
list.add(5);
list.add(4);
Collections.sort(list);

2.流式编程

ArrayList<Integer> list = new ArrayList<>();
list.add(10);
list.add(9);
list.add(18);
list.add(5);
list.add(4);
List<Integer> collect = list.stream().sorted(new Comparator<Integer>() {
    @Override
    public int compare(Integer o1, Integer o2) {
        return o1 - o2;
    }
}).collect(Collectors.toList());
System.out.println(collect);

  • 15
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的类型到存储范围大的类型。 具体规则为: byte→short(char)→int→long→float→double 也就是说byte类型的变量可以自动转换为short类型,示例代码: byte b = 10; short sh = b; 这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。 在类型转换时可以跳跃。示例代码: byte b1 = 100; int n = b1; l 注意问题 在整数之间进行类型转换时,数值不发生改变,而,特将整数类型别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。 转换规则 从存储范围大的类型到存储范围小的类型。 具体规则为: double→float→long→int→short(char)→byte 语法格式为: (转换到的类型)需要转换的值 示例代码: double d = 3.10; int n = (int)d; 这里将double类型的变量d强制转换成int类型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的低位,例如int类型的变量转换为byte类型时,则只去int类型的低8位(也就是最后一个字节)的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

允歆辰丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值