Java的Arrays类常用方法#冒泡排序#二分查找法#数组转换集合
数组高级冒泡排序
方法一:(冒泡排序)
/** 冒泡排序* 1,返回值类型,void* 2,参数列表,int[] arr* * 第一次:arr[0]与arr[1],arr[1]与arr[2],arr[2]与arr[3],arr[3]与arr[4]比较4次第二次:arr[0]与arr[1],arr[1]与arr[2],arr[2]与arr[3]比较3次第三次:arr[0]与arr[1],arr[1]与arr[2]比较2次第四次:arr[0]与arr[1]比较1次*/public static void bubbleSort(int[] arr) {for (int i = 0; i < arr.length -1 ; i++) { //外层循环决定循环几次for (int j = 0; j < arr.length - 1 - i; j++) { //-1为了防止索引越界,-i为了提高效率if (arr[j] > arr[j + 1]) {swap(arr,j,j+1);}}}}
方法二:(选择排序)
/** 选择排序* 1,返回值类型void* 2,参数列表int[] arr* * 第一次:arr[0]分别与arr[1-4]比较,比较4次第二次:arr[1]分别与arr[2-4]比较,比较3次第三次:arr[2]分别与arr[3-4]比较,比较2次第四次:arr[3]与arr[4]比较,比较1次*/
public static void selectSort(int[] arr){for (int i = 0; i < arr.length -1; i++) {for (int j = i+1; j < arr.length; j++) {if (arr[i] > arr[j]){swap(arr,i,j);}}}}
上面用到的swap方法:
/** 换位操作* 1,返回值类型,void* 2,参数列表int[] arr,int i,int j* * 如果某个方法,只针对本类使用,不想让其他类使用就可以定义成私有的*/
public static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}
主方法引用
public static void main(String[] args) {int[] arr = {21, 11, 88, 44, 23};//bubbleSort(arr);selectSort(arr);for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}
}
数组高级二分查找法
前提
数组必须为有序的,否则输入结果没有意义
public static int getIndex(int[] arr,int value){int min = 0;int max = arr.length -1;int mid = (min + max)/2;while (arr[mid] != value){ //当中间值不等于要找的值,就开始循环查找if (arr[mid] > value){max = max - 1;}else if (arr[mid] < value){min = min + 1;}mid = (min + max)/2;if (min > max){ //如果最小索引大于了最大索引,表示在数组里不存在该值 返回-1return -1;}}return mid;
}
主方法引用
public static void main(String[] args) {int[] arr1 = {11, 22, 33, 44, 55, 66};System.out.println(getIndex(arr1, 33));
}
Arrays类中封装的排序方法——sort
int[] arr2 = {22,66,11,33,55,44};
System.out.println(Arrays.toString(arr2));//数组转字符串
Arrays.sort(arr2); //排序
System.out.println(Arrays.toString(arr2));
Arrays类中封装的获取元素索引的方法——binarySearch
int[] arr3 = {11,22,33,44,55,66};
System.out.println(Arrays.binarySearch(arr3,22));
System.out.println(Arrays.binarySearch(arr3,21));//没有元素时,取插入点负值-1
数组转换成集合——asList
#数组转换成集合虽然不能增加或减少元素,但是可以用集合的思想操作数组,也就是说可以使用集合中的方法
public static void HasList() {int[] arr4 = {11,22,33,44,55};//基本数据类型的数组转换成集合,会将整个数组当作一个对象转换List<int[]> list = Arrays.asList(arr4);System.out.println(list);Integer[] arr5 = {11,22,33,44,55};//将数组转换成集合,数组必须是引用数据类型List<Integer> lsit1 = Arrays.asList(arr5);System.out.println(lsit1);}
Java的Arrays类常用方法#冒泡排序#二分查找法#数组转换集合相关推荐
- java小练习题---冒泡排序+二分查找法
题目: 冒泡排序+二分查找法 代码: package scan; import java.util.Scanner; //import java.util.Scanner; public class ...
- Java中Arrays类的常用方法
Java中Arrays类的常用方法 Arrays类位于 java.util 包中,主要包含了操作数组的各种方法. import java.util.Arrays; Arrays.fill(); //填 ...
- java 二分查找_Java数组之Arrays方法
Java数组之Arrays方法,拉勾IT课小编为大家分析,JAVA数组的一些方法,提升开发水平,增强技术开发水平,不断提升个人的技术能力,在对于java开发领域,很多人都从基础做起. 1. 数组的工具 ...
- java for循环和数组--冒泡排序、二分查找法
//100以内与7相关的数 for(int a=1;a<=100;a++){ if(a%7==0||a%10==7||a/10==7){ System.out.print(a+ ...
- Java基础——Arrays类
每日正能量 如果你要做一件事,不要到处宣言自己的想法,只管安安静静地去做,值不值,时间是最好的证明,自己的人生,得自己负责. Arrays类 JDK中提供了一个专门用于操作数组的工具类,即Arrays ...
- java.util 1.8_JDK1.8源码(四)——java.util.Arrays 类
java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 1.asList public static ...
- c语言实验报告 折半查找法,C语言数组之冒泡排序+折半查找法(二分查找)
冒泡排序算法 将相邻的元素进行两两比较,大的向后"冒", 小的向前"赶". 口诀: N个数字来排队,两两比较小靠前 外层循环N-1(控制需要比较的轮数). 内层 ...
- java的知识点17——java.util.Arrays类、多维数组
java.util.Arrays类 Arrays类包含了:排序.查找.填充.打印内容等常见的操作. 打印数组 package cn.dym08; import java.util.Arrays;pub ...
- 学习练习 java 二分查找法
1 package com.hanqi; 2 3 import java.util.*; 4 5 public class Test5 { 6 7 public static void main(St ...
最新文章
- 浏览器接收响应数据过大_DOM总结:数据通信(HTTP协议和Ajax)
- Ajax updatepanel用法
- matlab生成有向网络,matlab ode45和矩阵生成有向网络图
- 前目的地罗伯森是谁_距离目的地只剩10公里,开车师傅却在高速公路上睡着了...
- Java 习题(面向对象)
- 巨额流量费其实可以避免
- LeetCode 345. Reverse Vowels of a String
- java写文件 自动创建目录吗_Java 自动创建日志目录及文件
- 2018年C语言期末考试题及答案,HZNUOJ--2018年秋季学期程序设计基础(C语言)期末考试(补题)...
- iPhone5发布,杂谈
- 北京二手房价10月微涨 业内:坚持限购就不会大涨
- 计算机专业保研面试备考:概率论
- Ansible 配置Windows Update
- day 84 Vue学习四之过滤器、钩子函数、路由、全家桶等
- 旷视科技面试——算法岗
- Flink开发利器StreamX
- Twebbrowser从内存中加载页面
- Beautifulsoup模块
- 浮士德---法国:古诺
- 怎么为图片、视频设置打开方式