一、获取数组中的最大值:

public static int getMax_1(int [] array) {//第一种方法          
                    int max=array[0];//存储数组最大值,初始值为数组中的第一个元素。注意:这里的初始化值只能是数组中的元素,不能随意的赋值,这主要考虑到这种情况:有可能数组中的元素均小于随意赋的值,那么这时这个随意赋的值岂不成了最大值。
                    for (int i = 1; i < array.length; i++) {//注意:这里i的初始值为1,这主要是考虑到代码的执行效率:如果为0的话,则程序做了一次“无用功”
                                if (array[i]>max){
                                         max=array[i];
                                }
                    }
                    return max;
        }
 
        public static int getMax_2(int [] array){//第二种方法            
                    int max=0;//存储数组最大值的下标,初始值为数组中的第一个元素的下标。
                    for (int i = 1; i < array.length; i++){ //注意:这里i的初始值为1,这主要是考虑到代码的执行效率:如果为0的话,则程序做了一次“无用功”              
                               if (array[i]>array[max]){
                                         max=i;
                               }
                    }
                    return array[max];
        }

二、数组排序(从小到大)

public static void arrayTaxis_1(int [] array){//第一种方法:选择排序。注意:这里的返回值类型为void,而非int[]。        
                    for (int i = 0; i < array.length-1; i++){ //注意:这里i的取值范围之所以为array.length-1而不是array.length是因为采用这种方法排序数组时,当遍历完倒数第二个元素后就可以排出其顺序了。          
                           for (int j = i+1; j < array.length; j++){
                                     if (array[i]>array[j]){
                                                int temp=array[i];
                                                array[i]=array[j];
                                                array[j]=temp;
                                     }
                           }
                     }
        }
 
        public static void arrayTaxis_2(int [] array){//第二种方法:冒泡排序——相邻的两个元素进行比较,如果符合条件就换位。注意:这里的返回值类型为void,而非int[]。       
                     for (int i = 0; i < array.length-1; i++){ //注意:这里i的取值范围之所以为array.length-1而不是array.length是因为采用这种方法排序数组时,只需要比较array.length-1次就可以确定其顺序。          
                            for (int j = 0; j < array.length-i-1; j++){//数组长度减i是为了每循环比较一次数组长度就缩短x个,再减1是因为避免第一次比较时本循环出现数组下标越界。            
                                     if (array[j]>array[j+1]){
                                               int temp=array[j+1]; 
                                               array[j+1]=array[j];
                                               array[j]=temp;
                                     }
                             }
                      }
        }
        public static void arrayTaxis_3(int [] array){//第三种方法:借助Arrays的sort方法。注意:这里的返回值类型为void,而非int[]。        
                     Arrays.sort(array);
        }

三、在数组中寻找某个元素的位置:

public static int arraySearch_1(int [] array,int num){//第一种方法:传统方法,本方法用于获取num第一次出现的位置。        
                     for (int i = 0; i < array.length; i++){          
                             if (array[i]==num){
                                      return i;
                              }
                     }
                     return -1;//说明数组中不存在该元素。
        }
 
        public static int arraySearch_2(int [] array,int num){//第二种方法:折半查找——用于有序(比如数组由小到大排序)的数组中。        
                     int min=0;
                     int max=array.length-1;
                     int mid=(min+max)/2;
                     while(array[mid]!=num){
                             if (num>array[mid]){
                                        min=mid+1;
                             }else if (num<array[mid]){
                                        min=mid-1;
                             }
                             if (min>max){
                                        return -1;//说明数组中不存在该元素。
                             }
                             mid=(min+max)/2;
                     }
                     return mid;
        }
        public static int arraySearch_3(int [] array,int num){//第三种方法:折半查找——用于有序(比如数组由小到大排序)的数组中。         
                     int min=0;
                     int max=array.length-1;
                     int mid;
                     while(max>=min){  
                              mid=(min+max)/2;
                              if (num>array[mid]){
                                       min=mid+1;
                              }else if (num<array[mid]){
                                       min=mid-1;
                              }else{
                                       return mid;
                              }
                    }
                     return -1;//说明数组中不存在该元素。
        }

Java对数组的操作(一)相关推荐

  1. Java学习笔记十:Java的数组以及操作数组

    Java的数组以及操作数组 一:什么是数组: 数组可以理解为是一个巨大的"盒子",里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学 ...

  2. 深圳软件测试培训:java中数组的操作

    深圳软件测试培训:java中数组的操作 一.数组最常见的一个操作就是遍历. 因为数组的每个元素都可以通过索引来访问,通过for循环就可以遍历数组. public class M { public st ...

  3. Java对数组的操作(二)——集合与数组的切换

    在Java开发中经常遇见集合与数组的互相切换,怎样实现呢,呵呵呵,非常easy: import java.util.ArrayList; import java.util.Arrays;       ...

  4. Java数组常见操作

    Java数组常见操作 文章目录 Java数组常见操作 7.0 数组的遍历 1.使用foreach循环访问数组中每个元素. 2.使用简单的for循环(多层循环嵌套)来遍历数组. 7.1 数组长度 7.2 ...

  5. java web定义数组_Java基础之数组--数组常用操作

    3.2一维数组 3.2.1声明数组 数组类型[] 数组名称:int[] username; 或者 数组类型 数组名称[];int username[]; 3.2.2初始化一维数组 一维数组初始化有两种 ...

  6. Java数组常用操作

    目录  1.数组长度  2.数组填充  3.数组复制  4.数组比较  5.数组排序  6.在数组中搜索指定元素  7.把数组转换成字符串 数组的常用操作包括数组的充.复制.比较.排序等.Java提供 ...

  7. java byte数组操作_Byte数组操作方法集(Java.Net)

    在velocity优化时由于要将String转化为byte,所以就会涉及到一些针对byte数组的操作需要,如在一个数组中查找一个小数组.数组替换.数组扩展等操作,下面这个类就提供了这样一组方法,而且性 ...

  8. java 如何操作字节数组_实例解析Java字节数组操作模式代码

    字节数组的关键是它为存储在这部分内存中的每个8位值提供索引(快速)和精确的原始访问,并且您可以操纵这些字节来控制每个位.缺点是计算机只将每个条目视为一个独立的8位数字--这可能是您的程序正在处理的,或 ...

  9. java数组如何pop_Js数组的操作push,pop,shift,unshift等方法详细介绍

    js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首先来讲一下push和pop方法,这两个方法只会对数组从尾部 ...

  10. java 数组操作_9个java数组常用操作实例

    数组的特点: 数组是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来唯一确定数组中的元素.根据数组的维度,可以将其分为一维数组.二 ...

最新文章

  1. 鸿蒙系统的功能如何,华为鸿蒙系统发布会,这个功能怎么那么像小米MIUI的
  2. Python强大的格式化format
  3. 【深度学习】小目标检测、图像分类、图像识别等开源数据集汇总
  4. 树莓派python串口中文输出_Python实现树莓派USB串口通讯
  5. python交互模式设置及VIM的tab补齐
  6. 计算机word实训项目任务说明,计算机项目实训报告怎么写啊
  7. 计算机系统组成导学案,单元一任务2认识计算机系统的组成导学案.pdf
  8. 解决EXE文件无法打开的问题!
  9. IT营Koa2教程_Koa2+Nodejs+MongoDb打造企业级CMS前后端全栈项目实战视频教程(大地)
  10. 单径瑞利信道中的BPSK相干解调的(理论)误码率性能
  11. 双二阶广义积分器(SOGI)软件锁相(基于双线性变换)推导及实验代码
  12. Chibi Dinos上线薄饼IFO打新,是否值得参与?
  13. Zotero快速复制文献
  14. 怎么提取伴奏?有什么实用的提取软件?
  15. Win10、Win11打开远程桌面连接方法
  16. PHP之50个开源项目
  17. 页面嵌入 微软播放器-播放控件
  18. 今日分享 不可思议的人体
  19. 《程序员》2012年8期精彩内容:我们的开源
  20. [益智]:为什么下水道的盖子是圆的?

热门文章

  1. 由php nginx 出现 500错误的启示
  2. POJ1753-Flip Game
  3. Microsoft JET Database Engine 错误 '80040e09' 解决方法
  4. 【推导】【DFS】Codeforces Round #429 (Div. 1) B. Leha and another game about graph
  5. 怎样用js结合h5画出多头像组合头像
  6. Hadoop - 任务调度系统比较
  7. tbytes 转 十六进制 string
  8. asp .net 多文件上传(二)
  9. SQL SERVER2000教程-第五章 处理数据 第二节 检索数据
  10. 3.SRE:Google运维解密 --- 拥抱风险