java知识点16

new Integer.valueof()返回的是Integer的对象。
Integer.parseInt() 返回的是一个int的值。
new Integer.valueof().intValue();返回的也是一个int的值。
Integer.valueof(String s)是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完的对象就具有方法和属性了。
而Integer.parseInt(String s)只是将是数字的字符串转成数字,注意他返回的是int型变量不具备方法和属性。

char a = a.charAt(0)//获取索引为0位置上的字符

list转字符串并添加分隔符:
StringBuffer sb = new StringBuffer();
sb.append(list).append(" ")

转换进制:
Java.lang.Integer.toString(int i,int radix)方法可以实现将一个int类型的10进制的数据 i 转换为指定进制 radix的数据。

x的y次幂:Math.pow(x,y)

将给的数字转成科学记数法bg.toString(),转成普通数字bg.toPlainString()
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。
import java.math.BigDecimal;
public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal bg = new BigDecimal("1E11");
        System.out.println(bg.toEngineeringString());
        System.out.println(bg.toPlainString());
        System.out.println(bg.toString());
    }
}输出
 100E+9
 100000000000
 1E+11

Collectionos.ncopies(int, T) 方法用于返回一个不可变列表组成的n个拷贝的指定对象。
      List list = Collections.nCopies(5, "tuitorial Point");
      // create an iterator
      Iterator itr = list.iterator();
      System.out.println("Values are :");
      while (itr.hasNext()){
         System.out.println(itr.next());


%.0f 是输出 float 型或 double 型数据,按定点格式,小数点以下占0位。
也就是输出浮点数的整数部分,不输出小数点和小数点以下部分。小数部分 4 舍 5 入。
例如:printf("%.0f %.0f ",123.5,123.4);输出 124 123

%2d, %02d, %d的区别
%d正常输出十进制数,%2d指2位宽的十进制数,右端对齐,超出部分省略;%02d指输出2位十进制数,右端对齐,不够位数的话左端补0.

转换原理:
double类型占据8个字节,int类型只占据4个字节。在计算时,int类型会自动提升为double类型,自动补充4个字节,因此计算后的结果还是double类型。转换规则:
范围小的类型向范围大的类型提升。
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

初始化list并赋值
ArrayList list = new ArrayList<>(Arrays.asList("aa", "bb", "cc"));

使用 Arrays.asList 把数据转换为 List 的两个坑:
第一个坑:不能使用 Arrays.asList 来转换基本类型数组,使用会把int数组看做一个整体,size=1
Arrays.asList 方法只能将int装箱为Integer,不可能把int数组装箱为Integer数组。
可以使用java8 以上版本Arrays.stream方法来转换。
int[] arr = {1,2,3};
List list = Arrays.stream(arr).boxed().collect(Collectors.toList());
第二个坑: Arrays.asList 返回的 List 不支持增删操作

BufferReader用法:
 public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
close() 关闭流。
mark(int) 标记此流的当前位置。
markSupported() 报告此流是否支持 mark() 实现的操作。
read() 读取单一字符。
read(char[], int, int) 将若干字符读入一个数组中。
readLine() 读取一文本行。
ready() 报告此流是否读就绪。
reset() 将该流复位为最近标记。
skip(long) 跳过若干字符。

Java Map遍历value的6种方法
1. keySet迭代遍历value
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
value = map.get(iter.next());
}

2. keySet用for循环遍历value
for (String key : map.keySet()) {
value = map.get(key);
}

3. entrySet迭代遍历value
Iterator> iter = map.entrySet().iterator();
while (iter.hasNext()) {
value = iter.next().getValue();
}

4. entrySet用for循环遍历value
for (Entry entry: map.entrySet()) {
value = entry.getValue();
}

5. values迭代遍历value
Iterator iter = map.values().iterator();
while (iter.hasNext()) {
value = iter.next();
}

6. values用for循环遍历value
for (String value : map.values()) {
}

Java中整数四舍五入Math.round();
小数四舍五入:String.format("%.nf",d)表示保留n位

String.format()的使用(Java字符串格式化)
https://blog.csdn.net/wsc912406860/article/details/82771386
数字前面补0:("04d",99)    |0099|
数字前面添加空格:("% 4d",99)    |    99|

java中十进制数转其他进制Integer.toUnsignedString(num,jinzhi)
其它进制数转十进制数Long.valueOf(string,16)

java数值转为对应ascll码字符:在数字前加上(char)

两个数组比较是否完全相等:Arrays.equals(str1,str2);

埃氏筛法求素数:先去掉2的倍数,再去掉3的倍数,再去掉4的倍数,……依此类推,最后剩下的就是素数。
public static void isSushu(){
        for(int i = 0;i<10000;i++){
            a[i] = i+2;
        }
        for(int i = 2;i<=10000;i++){
            for (int j = 0; j < 10000; j++) {
                if (a[j]!=0){
                    if (a[j]%i==0&&a[j]/i!=1){
                        a[j] = 0;
                    }
                }
            }
        }
        for (int num:a){
            if (num!=0){
                list.add(num);
            }
        }
    }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值