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. B - Play on Words

    如果这个图是欧拉路,则每个顶点的出度等于入度.即out[i] = in[i] 如果这个图是半欧拉图,则起点的出度比入度大1,终点的入度比出度大1.其余顶点的出度等于入度.如果满足上述条件,就可以将所有 ...

  2. hdu5893 List wants to travel(树链剖分+线段树)

    Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submissi ...

  3. 2020 年百度之星·程序设计大赛 - 初赛一Dec 简单dp

    题意: Problem Description 初始有 a, ba,b 两个正整数,每次可以从中选一个大于 1 的数减 1,最后两个都会减到 1,我们想知道在过程中两个数互质的次数最多是多少. Inp ...

  4. 2019牛客暑期多校训练营(第四场)k题、j题

    传送门 k题: 题意: 给你一串由数字构成的字符串,你从这个字符串中找子字符串使这个字符串是300的倍数 题解: 这道题和第三场的B题极其相似 首先可以把是三百的倍数分开,必须要是100和3的倍数 是 ...

  5. Codeforces Round #579 (Div. 3) D2. Remove the Substring (hard version) (思维,贪心)

    题意:给你一个模式串\(t\),现在要在主串\(s\)中删除多个子串,使得得到的\(s\)的子序列依然包含\(t\),问能删除的最长子串长度. 题解:首先,我们不难想到,我们可以选择\(s\)头部到最 ...

  6. Codeforces Global Round 4 B. WOW Factor (前缀和,数学)

    题意:找出序列中有多少子序列是\(wow\),但是\(w\)只能用\(vv\)来表示. 题解:我们分别记录连续的\(v\)和\(o\)的个数,用\(v1\)和\(v2\)存,这里要注意前导\(o\)不 ...

  7. Centos7 搭建Nginx+rtmp+hls直播推流服务器

    1 准备工具 使用yum安装git [root~]# yum -y install git 下载nginx-rtmp-module,官方github地址 // 通过git clone 的方式下载到服务 ...

  8. UWP(一)开发入门

    异常问题总结 Your project file doesn't list 'win10' as a "RuntimeIdentifier". You should add 'wi ...

  9. 【论文笔记】AutoML for MCA on Mobile Devices——论文解读与代码解析

    理论部分 方法介绍 本节将详细介绍AMC的算法流程.AMC旨在自动地找出每层的冗余参数. AMC训练一个强化学习的策略,对每个卷积层会给出其action(即压缩率),然后根据压缩率进行裁枝.裁枝后,A ...

  10. MySQL——时间、字符串、时间戳相互转换

    一.时间转字符串 select data_format(now(),'%Y-%m-%d %H:%i:%s'); 二.时间转时间戳 select unix_timestamp(now()); 三.字符串 ...