Java——int、double型数组常用操作工具类
学了数组之后,感觉有好多操作需要经常去写,很不方便,因此自己做了一个工具类,方便调用,方法可能不全,希望大家可以添加,让我使用也方便一点儿。
public class ArrayUtils {
//求数组的最大值(int)
public static int getMax(int[] arr){
int max = arr[0];
for(int i = 0;i<arr.length;i++){
if(max<arr[i]){
max = arr[i];
}
}
return max;
}
//求数组的最小值(int)
public static int getMin(int[] arr){
int min = arr[0];
for(int i = 0;i<arr.length;i++){
if(min>arr[i]){
min = arr[i];
}
}
return min;
}
//得到数组最大值的下标(int)
public static int getMaxIndex(int[] arr){
int maxIndex = 0;
for(int i = 0;i <arr.length;i++){
if(arr[maxIndex]<arr[i]){
maxIndex = i;
}
}
return maxIndex;
}
//得到数组最小值的下标(int)
public static int getMinIndex(int[] arr){
int minIndex = 0;
for(int i = 0;i <arr.length;i++){
if(arr[minIndex]>arr[i]){
minIndex = i;
}
}
return minIndex;
}
//获得数组之和(int)
public static int getSum(int[] arr){
int sum = 0;
for(int i = 0; i < arr.length;i++){
sum += arr[i];
}
return sum;
}
//获得平均值(int)
public static int getAverage(int[] arr){
int avg = getSum(arr)/arr.length;
return avg;
}
//打印数组(int)
public static void printArray(int[] arr){
for(int i = 0;i<arr.length;i++){
if(i!=arr.length-1){
System.out.print(arr[i]+",");
}else{
System.out.println(arr[i]);
}
}
}
//选择排序对数据进行降序排序(int)
public static void selectSortDescendingArray(int[] arr){
for(int i = 0; i<arr.length-1;i++){//i<arr.length-1;最后一个不用比较
for(int j = i+1;j<arr.length;j++){
if(arr[i]<arr[j]){
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
//选择排序对数据进行升序排序(int)
public static void selectSortAscendingArray(int[] arr){
for(int i = 0; i<arr.length-1;i++){//i<arr.length-1;最后一个不用比较
for(int j = i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
//冒泡排序对数据进行降序排序(int)
public static void bubbleSortDescendingArray(int[] arr){
for(int i = 0;i<arr.length-1;i++){
for(int j = 0;j<arr.length-1-i;j++){
if(arr[j]<arr[j+1]){
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}
//冒泡排序对数据进行升序排序(int)
public static void bubbleSortAscendingArray(int[] arr){
for(int i = 0;i<arr.length-1;i++){
for(int j = 0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}
//二分查找(int)
public static int binarySearch(int[] arr,int key){
int min,mid,max;
min = 0;
max = arr.length-1;
while(arr[min]<arr[max]){
mid = (min+max)/2;
if(key>arr[mid]){
min = mid+1;
}else if(key<arr[mid]){
max = mid-1;
}else {
return mid;
}
}
return -1;
}
//*********************************************************************
//求数组的最大值(double)
public static double getMax(double[] arr){
double max = arr[0];
for(int i = 0;i<arr.length;i++){
if(max<arr[i]){
max = arr[i];
}
}
return max;
}
//求数组的最小值(double)
public static double getMin(double[] arr){
double min = arr[0];
for(int i = 0;i<arr.length;i++){
if(min>arr[i]){
min = arr[i];
}
}
return min;
}
//得到数组最大值的下标(double)
public static int getMaxIndex(double[] arr){
int maxIndex = 0;
for(int i = 0;i <arr.length;i++){
if(arr[maxIndex]<arr[i]){
maxIndex = i;
}
}
return maxIndex;
}
//得到数组最小值的下标(double)
public static int getMinIndex(double[] arr){
int minIndex = 0;
for(int i = 0;i <arr.length;i++){
if(arr[minIndex]>arr[i]){
minIndex = i;
}
}
return minIndex;
}
//获得数组之和(double)
public static double getSum(double[] arr){
double sum = 0;
for(int i = 0; i < arr.length;i++){
sum += arr[i];
}
return sum;
}
//获得平均值(double)
public static double getAverage(double[] arr){
double avg = getSum(arr)/arr.length;
return avg;
}
//打印数组(double)
public static void printArray(double[] arr){
for(int i = 0;i<arr.length;i++){
if(i!=arr.length-1){
System.out.print(arr[i]+",");
}else{
System.out.println(arr[i]);
}
}
}
//选择排序对数据进行降序排序(double)
public static void selectSortDescendingArray(double[] arr){
for(int i = 0; i<arr.length-1;i++){//i<arr.length-1;最后一个不用比较
for(int j = i+1;j<arr.length;j++){
if(arr[i]<arr[j]){
double temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
//选择排序对数据进行升序排序(double)
public static void selectSortAscendingArray(double[] arr){
for(int i = 0; i<arr.length-1;i++){//i<arr.length-1;最后一个不用比较
for(int j = i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
double temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
//冒泡排序对数据进行降序排序(double)
public static void bubbleSortDescendingArray(double[] arr){
for(int i = 0;i<arr.length-1;i++){
for(int j = 0;j<arr.length-1-i;j++){
if(arr[j]<arr[j+1]){
double temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}
//冒泡排序对数据进行升序排序(double)
public static void bubbleSortAscendingArray(double[] arr){
for(int i = 0;i<arr.length-1;i++){
for(int j = 0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
double temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}
//二分查找(double)
public static int binarySearch(double[] arr,double key){
int min,mid,max;
min = 0;
max = arr.length-1;
while(arr[min]<arr[max]){
mid = (min+max)/2;
if(key>arr[mid]){
min = mid+1;
}else if(key<arr[mid]){
max = mid-1;
}else {
return mid;
}
}
return -1;
}
}
Java——int、double型数组常用操作工具类的更多相关文章
- JAVA基础(二)—— 常用的类与方法
JAVA基础(二)-- 常用的类与方法 1 Math类 abs ceil floor 绝对值 大于等于该浮点数的最小整数 小于等于该浮点数的最大整数 max min round 两参数中较大的 两参数 ...
- Java第六天,API中常用的类,StringBuffer、StringBuilder、包装类、System类的使用
System (1)这个类中有很多可以获取系统信息的类. public class SystemLearn { public static void main(String[] args) { lon ...
- 利用Java反射机制对实体类的常用操作工具类ObjectUtil
代码: ObjectUtil类: import java.lang.reflect.Field; import java.math.BigDecimal; import java.text.Simpl ...
- 分享JAVA的FTP和SFTP相关操作工具类
1.导入相关jar <!--FTPClient--><dependency> <groupId>commons-net</groupId> <a ...
- java消除整型数组中重复的元素,排序后输出新数组
法一: import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(S ...
- java 将整型数组转化为字符串
java arrays 和arrayList 的区别 package com.vc; import java.util.Arrays; public class Demo05 { public sta ...
- Java中Collection、Map常用实现类研究分析
接口/实现类 描述 key是否可为null 为null是否报错 key是否重复 key重复是否报错 key是否和添加一致 是否线程安全 List 一组元素的集合 ArrayList 基于数组存储,读取 ...
- 数组转集合、集合转数组、字符串数组与int型、long型数组等的转换
在项目中经常会遇到数组转集合.集合转数组.数组之间类型转换等操作 1.数组转集合 为了实现把一个数组转换成一个ArrayList,很多Java程序员会使用如下的代码: String str[] = { ...
- JAVA常用工具类汇总
一.功能方法目录清单: 1.getString(String sSource)的功能是判断参数是否为空,为空返回"",否则返回其值: 2.getString(int iSource ...
随机推荐
- postman发送请求携带Cookie
相关步骤: 1.下载 Postman-Interceptor_v0.2.24.zip插件 2.解压下载好的插件,将其拖到应用配置中 3.复制Postman-Interceptor_v中的id地址 4. ...
- 转载 配置vue项目
Vue作为前端三大框架之一截至到目前在github上以收获44,873颗星,足以说明其以悄然成为主流.16年10月Vue发布了2.x版本,经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本 ...
- linux连个文件都删除不了,什么鬼!
前言 最近不是redis 6.0 出了吗,官网介绍最新稳定版本是 6.0.3 .于是,我就准备在自己的破小服务器上安装一下.于是,出现了后续的糟心事 (linux 下的文件正常删除不了). 下载了最新 ...
- Kivy主窗体大小的控制
1. 引入依赖模块 主窗体大小的控制,需要使用到kivy.core.window中的Window模块 from kivy.app import App from kivy.core.window im ...
- 极客手中的利器Electron
作为一个前端开发人员,你可能已经听说过Electron了,你知道VS Code是基于这个技术开发的.不但VS Code, 目前一些大热的软件:飞书.Slack.WhatsApp都是基于这个技术开发的. ...
- [JavaWeb基础] 023.线程安全(二)
上一篇我们讲解了线程安全的问题,那么要解决线程安全的问题,我们就必须用到线程同步,保证线程之间不互相影响而产生脏数据,下面我们来讲讲具体的实现吧. 首先我们看下例子,我们有个Outputter类,用于 ...
- ForkJoinPool分支合并框架-工作窃取
Fork/Join 框架 Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成 若干个小任务(拆到不可再拆时), 再将一个个的小任务运算的结果进行 join 汇总 For ...
- JavaScript 简版-菜鸟中的菜鸟2
JavaScript 输出 JavaScript 没有任何打印或者输出的函数. JavaScript 显示数据 JavaScript 可以通过不同的方式来输出数据: 使用 window.alert() ...
- ES6-解析赋值
1.注意事项 A.左右两边结构必须一样 B.右边必须是个东西 C.声明和赋值不能分开(必须在一句话里完成) 2.代码如下 <!DOCTYPE html> <html lang=&qu ...
- 微信小程序路由跳转(navigateTo,redirectTo ,switchTab ,reLaunch )
navigateTo, redirectTo 只能打开非 tabBar 页面. switchTab 只能打开 tabBar 页面. reLaunch 可以打开任意页面. 通过redirect重定向的页 ...