JAVA基础(二)—— 常用的类与方法

1 Math类

abs ceil floor
绝对值 大于等于该浮点数的最小整数 小于等于该浮点数的最大整数
max min round
两参数中较大的 两参数中较小的 四舍五入,算法为 Math.floor(x+0.5)
pow sqrt random
指数 算术平方根 随机数,在[0,1)间,取整int()即可
exp log
en In(n)
  • 找数组中max/min:

    1. int a[] = {10,5,8};
    2. int min = Arrays.stream(a).min().getAsInt();
  • 四舍五入保留两位小数

    1. 法一:输出%.2f
    2. 法二:(double) Math.round(d*100) / 100

2 String类

  1. //创建
  2. 法一:
  3. String greeting=“bluesky”;
  4. 法二:
  5. char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
  6. String helloString = new String(helloArray);
  7. //修改
  8. //String 类创建后是不可修改的;修改字符串使用StringBuffer以及StringBuilder类。
  9. StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");
  10. sBuffer.append("www");
  11. delete reverse replace substring
  12. //返回长度
  13. .length()
  14. //连接(返回新串)
  15. 法一:.concat()
  16. 法二: +=
  17. //格式化字符串
  18. 法一:输出格式化 printf
  19. System.out.printf("值为 " +"%f, 值为 " + " %d, 值为 " + "is %s", floatVar, intVar, stringVar);
  20. %.2f表示精确到百分位
  21. 法二:字符串格式化
  22. String fs = fs = String.format("值为 " + "%f, 值为 " +" %d, 值为 " + " %s", floatVar, intVar, stringVar);
  23. //按间隔符拆成String数组
  24. String [] a = s.split(" "int maxsplit);
  25. //char与string转换
  26. str.charAt(index) ->char //第index-1位
  27. str.toCharArray() ->char[]
  28. String.valueOf('C') //即String.valueOf(字符/字符数组)
  29. String.valueOf(new char[]{'c'})
  30. String s = new String(new char[]{'c'});
  31. //判断前后缀
  32. boolean str.startsWith(str1)
  33. boolean str.endsWith(str1)
  34. boolean str.startsWithstr1num //num代表从str中第num-1位起算起始
  35. //比较两个String
  36. .equals()
  37. .equalsIgnoreCase() //不区分大小写
  38. .compareTo(str1,str2) //按字典序比较
  39. .compareToIgnoreCase() //按字典序比较,不区分大小写
  40. //查找指定字符/子串在该字符串中第一次出现的位置
  41. .indexOf(char/str)
  42. .indexdOf(char/str,fromIndex) //从指定的位置开始查找
  43. //查找指定字符/子串在该字符串中最后一次出现的位置
  44. .indexOf(char/str)
  45. .indexdOf(char/str,fromIndex) //从指定的位置开始反向查找
  46. //是否匹配正则表达式
  47. matches(String regex)
  48. //替换
  49. replace(oldchar,newchar)
  50. replaceAll(String regex,String replacement) //使用replacement替换字符串所有匹配的
  51. //取子串
  52. substring(start,(end))
  • StringBuffer类方法
  1. append(str);
  2. reverse();
  3. delete(int start,int end);
  4. insert(int offset,String str);
  5. replace(int start,int end,String str); //用str替换从start到end的子串
  6. capacity() //返回当前容辆
  7. setCharAt(int index,char ch) //将index位置的字符设为ch
  8. toString() //转为String
  9. charAt()
  10. indexOf()
  11. substring()

3 数组

  1. //创建
  2. double[] myarr = new double[arr.length];
  3. double[] myarr = {1.1,2.3,1.2,1.3};
  4. //数组也可以作为函数的参数和返回值
  5. //多维数组,可以看作数组的数组
  6. 法一:String[][] str = new String[3][4];
  7. 法二:也可以从最高维开始,为每一维分配空间
  8. String[][] s = new String[2][];
  9. s[0] = new String[2];
  10. s[1] = new String[3];
  11. //Arrays类方法
  12. Arrays.fill(arr,9); //赋值
  13. Arrays.sort(brr); //排序
  14. Arrays.equals(arr, brr)) //比较
  15. Arrays.binarySearch(brr,7) //二分法查找,数组在此前必须排序好

4 List类

  • List是一个接口,不能写成:List list = new List(); //错误
  • List有两个重要的实现类:ArrayList和LinkedList

4.1 ArrayList

  • ArrayList可以看作是能够自动增长容量的数组,动态数组

    • 利用ArrayList的toArray返回一个数组;
    • Arrays.asList返回一个列表;
  1. import java.util.ArrayList;
  2. import java.util.Iterator;
  3. (new,toArray),(add,set,remove,clear),(contains,isEmpty)
  4. (size,get,Iterator),reverse
  5. //创建
  6. ArrayList list0 = new ArrayList<Integer>();
  7. List <Integer> output = new ArrayList<Integer>();
  8. //向ArrayList添加新元素,。add(位置(,元素))
  9. //向ArrayList更新元素,。set(位置,新元素)
  10. list1.add(5);
  11. list1.add(1,5);
  12. list1.set(1,4);
  13. //.remove(元素)删除第i个元素,或删除“元素”(只适用String型)
  14. list1.remove(i);
  15. //.contains(元素) ArrayList是否包含该元素,返回true或false
  16. System.out.println(list1.contains(4));
  17. //通过Iterator遍历ArrayList,需要import java.util.Iterator
  18. for(Iterator iter=list1.iterator();iter.hasNext();) {
  19. System.out.println(iter.next());
  20. }
  21. //.toArray()把ArrayList转为数组
  22. String[] arr = (String[])list1.toArray(new String[0]);
  23. for(String a:arr) {
  24. System.out.println(a);
  25. }
  26. //清空ArrayList,.clear()
  27. list1.clear();
  28. //判断ArrayList是否为空,.isEmpty(),返回true或false
  29. System.out.println(list1.isEmpty());
  30. //.size()获取ArrayList大小,.get(位置)访问该位置元素
  31. for(int i=0;i<list1.size();i++) {
  32. System.out.print(list1.get(i)+" ");
  33. }
  34. //反转
  35. Collections.reverse(list);
  36. //查找元素
  37. if(list.contains()) list.indexOf();
  38. //排序
  39. Collection.sort(list);

5 转换

  • List,In`teger[], int[]之间转换

    1. // int[] 转 List<Integer>
    2. List<Integer> list1 =Arrays.stream(data).boxed().collect(Collectors.toList());
    3. // 1.使用Arrays.stream将int[]转换成IntStream。
    4. // 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream<Integer>。
    5. // 3.使用Stream的collect(),将Stream<T>转换成List<T>,因此正是List<Integer>。
    6. // List<Integer> 转 int[]
    7. int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();
    8. // String[] 转 List<String>
    9. List<String> list3 = Arrays.asList(strings1);
    10. // List<String> 转 String[]
    11. String[] strings2 = list3.toArray(new String[0]);

JAVA基础(二)—— 常用的类与方法的更多相关文章

  1. java基础(二) -对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一 ...

  2. Java面试题总结之Java基础(二)

    Java面试题总结之Java基础(二) 1.写clone()方法时,通常都有一行代码,是什么? 答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有G ...

  3. java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing

    java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.sql.*; java.text.*; java.a ...

  4. Java基础系列-equals方法和hashCode方法

    原创文章,转载请标注出处:<Java基础系列-equals方法和hashCode方法> 概述         equals方法和hashCode方法都是有Object类定义的. publi ...

  5. Java基础-日期格式化DateFormat类简介

    Java基础-日期格式化DateFormat类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.DateFormat类概述 DateFormat 是日期/时间格式化子类的抽象 ...

  6. Java入土--Java基础(二)

    Java基础(二) 接上一讲,我们接着来聊聊Java的一些基础知识,下一讲就会进行流程的控制. 类型转换 首先呢,是类型的转换,接上一个内容的数据类型,类型转换就是数据类型更进一步的应用. 由于Jav ...

  7. java的属性只能在类里面 方法外面定义

    java的属性只能在类里面 方法外面定义 区别于python:python 既能在类里面(类属性) 又能在方法里面定义属性(实例属性)

  8. 29个android开发常用的类、方法及接口

    在安卓开发中,我们常常都需要借助各种各样的方法.类和接口来实现相关功能.提升开发效率,但对于初学者而言,什么时候该用什么类.方法和接口呢?下面小编整理了29个,日常开发中比较常用的类.方法.接口及其应 ...

  9. java基础之常用类1

    java基础 以下内容为本人的学习笔记,如需要转载,请声明原文链接   java常用类: 1.内部类 2.Object类 3.Object类常用方法 4.包装类 5.String类 6.BigDeci ...

随机推荐

  1. Pytest(18)pytest接口自动化完整框架思维导图

    pytest接口自动化完整框架思维导图

  2. docker(10)上传本地镜像到镜像仓库

    前言 之前通过docker搭建过jenkins+python3环境,如果想要在不同的机器上搭建一样的环境,就可以将之前搭建的镜像上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境. 如果公开的话 ...

  3. CodeForces 893C (并查集板子题)

    刷题刷到自闭,写个博客放松一下 题意:n个人,m对朋友,每寻找一个人传播消息需要花费相应的价钱,朋友之间传播消息不需要花钱,问最小的花费 把是朋友的归到一起,求朋友中花钱最少的,将所有最少的加起来. ...

  4. nuoyanli 520 Let‘s play computer game

    H题 描述 xxxxxxxxx在疫情期间迷上了一款游戏,这个游戏一共有nnn个地点(编号为1--n1--n1--n),他每次从一个地点移动到另外一个地点需要消耗 一定的能量,每一个地点都有一些珠宝,输 ...

  5. Codeforces Round #669 (Div. 2) C. Chocolate Bunny (交互,构造)

    题意:有一个长度为\(n\)的隐藏序列,你最多可以询问\(2n\)次,每次可以询问\(i\)和\(j\)位置上\(p[i]\ mod\ p[j]\)的结果,询问的格式是\(?\ x\ y\),如果已经 ...

  6. windows安装

    1.windows系统版本分类a. 个人版windows98.XP.win7,win8,win10b. 企业版/服务器版windows server NT/2000/2003/2008/2012[广泛 ...

  7. 前端接收后端文件流导出excel文档遇到的问题

    先上代码: Vue.prototype.download = function(oUrl, filename) { this.axios .get(oUrl, { responseType: 'arr ...

  8. AbstractQueuedSynchronizer的使用和juc里的相关类的解析

    对AQS进行解析后,先来实现两个简单的基于AQS的类,然后再解析juc里基于AQS构造的类. 1.基于AQS的类的示例 首先先看这个类,这个类是<Java并发编程实战>的一个示例,AQS源 ...

  9. flex 布局占位符

    flex 布局占位符 空 span bug .popover-custom-class .system-guide-container .buttons-box { display: flex; fl ...

  10. git hooks All In One

    git hooks All In One $ xgqfrms git:(main) cd .git/ $ .git git:(main) ls COMMIT_EDITMSG HEAD branches ...