转载自:https://www.cnblogs.com/bekeyuan123/p/6891875.html


数组的定义:

  1. // 3种定义方式
  2. int[] arr = new int[5];
  3.  
  4. int[] arr1 = {1,2,3,4,5};
  5.  
  6. int[] nums = new int[]{1, 2, 3};
  7.  
  8. long[] arr2 = new long[6];
  9.  
  10. String[] strs = new String[5];
  11.  
  12. // 数组可以存储引用类型
  13. Person[] ps = new Person[5];

数组的操作:        int[] arr = {45, 34, 53, 43};

  1. // 默认升序排序
  2. Arrays.sort(arr);
  3. System.out.println(Arrays.toString(arr));
  4. // 二分搜索法(使用之前需要先使用Arrays.sort()排序),如果没有找到数字,返回为负数;返回正数,代表数字在数组中的索引
  5. int i = Arrays.binarySearch(arr, 34);
  6. System.out.println(i);
         // Arrays.copyOf()底层实现是System.arraycopy();
  7. int[] newArr = Arrays.copyOf(arr, 7);
  8.      // copyOfRange()方法第三个参数是索引值,包左不包右
  9. int[] newArr1 = Arrays.copyOfRange(arr, 1, 3);
  10. System.out.println(Arrays.toString(newArr));
  11. System.out.println(Arrays.toString(newArr1));

  12.      // binarySearch()方法第三个参数是索引值,包左不包右
  13. int j = Arrays.binarySearch(arr, 1, 3, 34);
  14. System.out.println(j);

冒泡排序:

  1. int[] arr = {23,12,48,56,45};
  2.      int temp = -1;
  3. for(int i=0;i<arr.length;i++) {
  4. for(int j=i+1;j<arr.length;j++) {
  5. if(arr[i]>arr[j]) {
  6. temp = arr[i];
  7. arr[i] = arr[j];
  8. arr[j] = temp;
  9. }
  10. }
  11. }
  12. System.out.println(Arrays.toString(arr));

直接选择排序:

  1. int[] arr = {23,12,48,56,45};
  2.     for(int i=0;i<arr.length;i++) {
  3. int tem = i;
           // 每一趟的比较都把最小的一个数字的索引找到
  4. for(int j=i;j<arr.length;j++) {
  5. if(arr[j] < arr[tem]) {
  6. tem = j;
  7. }
  8. }
  9. int temp1 = arr[i];
  10. arr[i] = arr[tem];
  11. arr[tem] = temp1;
  12. }
  13. System.out.println(Arrays.toString(arr));

反转排序:

  1. int[] arr = {23,12,48,56,45};
  2.     for(int i=0;i<arr.length / 2;i++) {
  3. int temp = arr[i];
  4. arr[i] = arr[arr.length-i-1];
  5. arr[arr.length-i-1] = temp;
  6. }
  7. System.out.println(Arrays.toString(arr))

十七、Java中数组常见的几种排序方法!的更多相关文章

  1. java中数组复制的两种方式

    在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...

  2. Java中数组转为List三种情况的优劣对比,常犯的类型转换错误原因解析

    一.最常见方式(未必最佳)通过 Arrays.asList(strArray) 方式,将数组转换List后,不能对List增删,只能查改,否则抛异常. 关键代码:List list = Arrays. ...

  3. Java中数组复制的几种方式以及数组合并

    1.Object.clone() 简单直接,只能对源数组完整地复制 2.Arrays.copyOf(T[] original, int newLength) 可以只复制源数组中部分元素,但复制的起始位 ...

  4. c语言常见的几种排序方法总结

    一:选择排序和冒泡排序 这两种排序比较简单,直接贴出代码: #include <stdio.h> void choose_sort(int *arr, int n); void bubbl ...

  5. Javarscipt中数组或者字符串的随机排序方法

    在日常开发中,经常会遇到随机排序的需求,思路就是利用Math.random()方法,抽取随机数,让数组中的元素进行对调: 话不多说直接上代码,方法一:基本思路就是将a中随机抽取一个元素,放入b中,再从 ...

  6. java 遍历数组常见的3种方式

    1.for循环,最常见 2.利用foreach 3.利用jdk自带的方法  --> java.util.Arrays.toString()

  7. Java中数组复制的几种方法

    /** * @author zhengbinMac */ public class Test { public static void main(String[] args) { int[] arra ...

  8. java中最常见的几种运行时异常,你get了吗?

    NullPointerException (空指针异常) ClassCastException (类型强制转换异常) NumberFormatException (数字格式异常) NegativeAr ...

  9. Java中数组定义的三种方式

    方法一: 1.先声明 2.分配空间 3.赋值 public class arr{ public static void main(String[] args){ int[] arr; //先声明 ar ...

随机推荐

  1. python使用itchat发送微信消息提醒

    最近在学习一点python,先找了找有趣的应用,实际修改跑了一下提高兴趣程度. 找到itchat,它的简介是这样的: “itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单. ...

  2. 取消win10 任务栏已固定的软件

    通过组策略编辑器 设置为“已禁用”,就可 ,自由取消已固定的图标.

  3. mysql创建表及插入数据操作步骤及注意要点

    环境:mysql workbench 1.创建新的表,注意,指定要存放的数据库 列名可以加单引号(键盘上1左边的引号),也可以不加 2.插入数据 注意:如果数据是字符型,必须使用单引号或者双引号,如: ...

  4. .net core下载文件

    上传的文件是在wwwroot下  通过保存的路径跟文件名称完成下载 public IActionResult DownloadFile() { var filePath = "/Upload ...

  5. yml文件搞一波

    引用https://www.cnblogs.com/zslli/p/8717483.html https://www.cnblogs.com/baoyi/p/SpringBoot_YML.html 划 ...

  6. 使用nexus3.x搭建maven私服

    前言 好久之前就想搭建maven仓库了,一直拖到了现在,也就是懒得动,现在终于是要付诸行动了.网上查了不少资料,好多博客都是关于2.x的搭建,我下载的是最新版的nexus,好多教程已经不能使用,以此记 ...

  7. AET PN结

    电场方向 电场方向和正电荷受力方向相同 飘移运动和扩散运动 多子和电场方向互相抵制,而多子是扩散运动,而对少子则是促进作用,当扩散和漂移达到动态平衡时,我们称PN结形成 PN结特性 单项导电性

  8. [CSS3]环形进度条

    来源:https://codepen.io/eZ0/pen/eZXNzd 点击上面链接有源码有示例. .ko-progress-circle { width: 120px; height: 120px ...

  9. Linux查看与挂载新磁盘

    问题 把CentOS都换成了Ubuntu Server(16.04 LTS),用df -h查看磁盘占用情况,确发现之前插入的一块大容量磁盘/dev/sdb1消失了.是磁盘坏了?还是没被系统识别? 解决 ...

  10. Spring再接触 自动装配

    UserDaoImpl package com.bjsxt.dao.impl; import com.bjsxt.dao.UserDAO; import com.bjsxt.model.User; p ...