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:

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

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

2 String类

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

3 数组

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

4 List类

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

4.1 ArrayList

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

    • 利用ArrayList的toArray返回一个数组;
    • Arrays.asList返回一个列表;
import java.util.ArrayList;
import java.util.Iterator;
(new,toArray),(add,set,remove,clear),(contains,isEmpty)
(size,get,Iterator),reverse
//创建
ArrayList list0 = new ArrayList<Integer>();
List <Integer> output = new ArrayList<Integer>();
//向ArrayList添加新元素,。add(位置(,元素))
//向ArrayList更新元素,。set(位置,新元素)
list1.add(5);
list1.add(1,5);
list1.set(1,4);
//.remove(元素)删除第i个元素,或删除“元素”(只适用String型)
list1.remove(i);
//.contains(元素) ArrayList是否包含该元素,返回true或false
System.out.println(list1.contains(4));
//通过Iterator遍历ArrayList,需要import java.util.Iterator
for(Iterator iter=list1.iterator();iter.hasNext();) {
System.out.println(iter.next());
}
//.toArray()把ArrayList转为数组
String[] arr = (String[])list1.toArray(new String[0]);
for(String a:arr) {
System.out.println(a);
}
//清空ArrayList,.clear()
list1.clear();
//判断ArrayList是否为空,.isEmpty(),返回true或false
System.out.println(list1.isEmpty());
//.size()获取ArrayList大小,.get(位置)访问该位置元素
for(int i=0;i<list1.size();i++) {
System.out.print(list1.get(i)+" ");
}
//反转
Collections.reverse(list);
//查找元素
if(list.contains()) list.indexOf();
//排序
Collection.sort(list);

5 转换

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

    // int[] 转 List<Integer>
    List<Integer> list1 =Arrays.stream(data).boxed().collect(Collectors.toList());
    // 1.使用Arrays.stream将int[]转换成IntStream。
    // 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream<Integer>。
    // 3.使用Stream的collect(),将Stream<T>转换成List<T>,因此正是List<Integer>。 // List<Integer> 转 int[]
    int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray(); // String[] 转 List<String>
    List<String> list3 = Arrays.asList(strings1);
    // List<String> 转 String[]
    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. 2013-2014 ACM-ICPC, NEERC, Eastern Subregional Contest PART (8/10)

    $$2013-2014\ ACM-ICPC,\ NEERC,\ Eastern\ Subregional\ Contest$$ \(A.Podracing\) 首先枚举各个折现上的点,找出最小宽度,然 ...

  2. 简谈图论重要性&&图论总结

    从外地学习回来,我对图论才有认识(以前就没接触过,非常尴尬),说实话,学好图论的重要性,就像学数学时在进行解析几何时,图极有可能是打开答案的最后秘钥,也就是数形结合,而懂的人永远明白,用图解决绝对比用 ...

  3. Codeforces Round #650 (Div. 3) F1. Flying Sort (Easy Version) (离散化,贪心)

    题意:有一组数,每次操作可以将某个数移到头部或者尾部,问最少操作多少次使得这组数非递减. 题解:先离散化将每个数映射为排序后所对应的位置,然后贪心,求最长连续子序列的长度,那么最少的操作次数一定为\( ...

  4. 80x86/Pentium微机原理及接口技术-微处理器-学习笔记

    80x86/  Pentium微机原理及接口技术 1.    计算机基础... 1 1.1常用术语... 1 1.2计算机中数与编码的表示方法... 1 1.2.1进制表示及进制转换... 1 1.2 ...

  5. MySQL 回表查询 & 索引覆盖优化

    回表查询 先通过普通索引的值定位聚簇索引值,再通过聚簇索引的值定位行记录数据 建表示例 mysql> create table user( -> id int(10) auto_incre ...

  6. 忘记Mysql的root用户密码处理方法(以mysql 5.5.33为例)

    1.修改mysql服务器的脚本 ~]#vi /etc/rc.d/init.d/mysqld #找到$bindir/mysqld_safe --datadir="$datadir" ...

  7. next v5升级到next v7需要注意的地方

    title: next v5升级到next v7需要注意的地方 date: 2020-03-04 categories: web tags: [hexo,next] 大部分的设置都是一样的,但有一些细 ...

  8. Leetcode(877)-石子游戏

    亚历克斯和李用几堆石子在做游戏.偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] . 游戏以谁手中的石子最多来决出胜负.石子的总数是奇数,所以没有平局. 亚历克斯和李轮流进行,亚历克斯先开始 ...

  9. codeforces 903D

    D. Almost Difference time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  10. 全方位构造免杀 webshell 小结[一]

    转载自https://klionsec.github.io/2017/10/11/bypasswaf-for-webshell/   全方位构造免杀 webshell 小结[一]   前言:    本 ...