我是靠谱客的博主 忧心鱼,最近开发中收集的这篇文章主要介绍黑马程序员_数组知识总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一.排序


1选择排序
int[] arr = {1,5,2,4,6,8};
原理:如果拿0角标上的元素依次和后面的元素进行比较,
              第一次内循环结束后,最小值出现在了0角标位置。


arr[x]与arr[y]比较
数组长度是6
for (int x = 0;x < arr.length - 1;x++){
    for (int y = x + 1;y < arr.length;y++){
        if (arr[x] > arr[y]){
            int temp = arr[x];
            arr[x] = arr[y];
            arr[y] = temp;
        }
    }
}
2冒泡排序


int[] arr = {1,5,2,4,6,8};
原理:两个相邻元素进行比较,第一次比较完以后,最大值出现在了最大角标处。


for (int x = 0;x < arr.length - 1; x++){
    for (int y = 0;y < arr.length - 1 - x;y++){//6
        if (arr[y] > arr[y+1]){
            int temp = arr[y];
            arr[y] = arr[y+1];
            arr[y+1] = temp;
        }
    }
}
3,查找


A:无序数组
int[] arr = {1,5,2,4,6,8};
public static int getIndex(int[] arr,int key) {
    for (int x = 0;x < arr.length;x++){
        if (key == arr[x]){
            return x;
        }
    }
    return -1;
}
B:有序数组 二分查找
数组长度是6,最大角标值是5
public static int getIndex(int[] arr,int key) {
    int min = 0;
    int max = arr.length-1;
    int mid = (min + max)/2;
    while (key != arr[mid]){
        if (key > arr[mid]){
            min = mid + 1;
        }else if (key < arr[mid]){
            max = mid - 1;
        }
        if (min > max){
            return -1;
        }
        mid = (min + max)/2;
    }
    return mid;


}
二.Arrays工具类


sort()
binarySearch()
三.BigInteger


1.创建对象
可以使用BigInteger(String)来创建一个很大的整数, 精度可以无限大, 值创建之后不会被改变(类似String)
2.常用方法
BigInteger add(BigInteger val) //加
BigInteger subtract(BigInteger val) //减
BigInteger multiply(BigInteger val) //乘
BigInteger divide(BigInteger val) //除
BigInteger mod(BigInteger m ) //模
BigInteger max(BigInteger val) //两个数的最大值
BigInteger min(BigInteger val) //两个数的最小值
四.BigDecimal


1.创建对象
BigDecimal(double); //运算结果不精确
BigDecimal(String); //可以,但是每次都要传字符串给构造函数
static BigDecimal valueOf(double) //可以,而且可以直接传double数
因为double数是不精确,是无限接近那个数,用BigDemal这个类可以让其精确
2.常用方法
BigDecimal add(BigDecimal augend)
BigDecimal subtract(BigDecimal subtrahend)
BigDecimal multiply(BigDecimal multiplicand)
BigDecimal divide(BigDecimal divisor)
五.时间类


1.Date
比较古老的一个类, 大多数方法已过时, 但通常我们还会用它来获取当前时间,new Date()可以创建日期对象, 然后使用SimpleDateFormat可以将其格式化成我们需要的格式,通常使用的格式为: "yyyy-MM-dd HH:mm:ss", 具体格式说明详见SimpleDateFormat类yyyy年MM月dd日 E HH:mm:ss
a.获取当前时间的毫秒值
Date d = new Date();
d.getTime(); //获取的是1970年1月1日0时0分0秒到当前时间的毫秒值
System.currentTimeMillis();
b.将毫秒值转换成时间对象
Date d = new Date(毫秒值) //通过毫秒值获取时间对象
Date d = new Date(); //创建时间对象
d.setTime(毫秒值); //根据毫秒值修改时间对象
2.Calendar
很多方法都是替代了Date类的方法, 最常用的就是
int get(int field)(Calendar.YEAR) //通过传入的字段获取对应的值,(获取年对应的值)
void add(int field, int amount) //field代表传入的时间字段可以是年月日等,amount代表是数值,正数就是在传入的字段上加,负数减
void set(int field, int value) //field代表传入的时间字段可以是年月日等,value代表设置的值,想设置哪一年或月日等,就写哪个值
void set(int year, int month, int date)
可以对指定的字段获取, 设置, 以及增减 六.Math
提供了一些和数学运算相关的方法,
static double PI //获取π(派)的值
static double floor(double a) //是小于等于a这个double值的最大整数对应的double值
static double ceil(double a) //是大于等于a这个double值的最小整数对应的double值
static long round(double a ) //四舍五入,返回是一个long值
static double sqrt(double a) //开平方
static double pow(double a, double b) //a是底数,b是指数返回的是a的b次幂

最后

以上就是忧心鱼为你收集整理的黑马程序员_数组知识总结的全部内容,希望文章能够帮你解决黑马程序员_数组知识总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

相关文章

黑马程序员——数组排序------- <a href=android培训java培训、期待与您交流! ---------- /*  * 数组排序:  * 冒泡排序  * 选择排序  * 二分法查找:从一个数组中查找一个指定的数,(并返回其索引值)前提:数组必须排好序!  */ public class D" class="embed-responsive-item">
黑马程序员——数组排序------- android培训java培训、期待与您交流! ---------- /*  * 数组排序:  * 冒泡排序  * 选择排序  * 二分法查找:从一个数组中查找一个指定的数,(并返回其索引值)前提:数组必须排好序!  */ public class D

评论列表共有 0 条评论

立即
投稿
返回
顶部