Java数组:多维数组(二维),Arrays类,冒泡排序
Arrays类
数组工具类:java.util.Arrays
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而”不用“使用对象来调用
具有以下常用功能:
给数组赋值:通过fill方法
对数组排序:通过sort方法,按升序
比较数组:通过equals方法比较数组中元素值是否相等
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作
冒泡排序:
两层循环,外层冒泡轮数,里层依次比较,时间复杂度:O(n^2)
package com.zdz.array; import java.util.Arrays; public class ArrayDemo {
public static void main(String[] args) {
//[8][2]数组里面存数组
int[][] array = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {10, 11}, {12, 13}, {14, 15}};
printArray(array[0]); for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
System.out.println("=======================================");
//Arrays类
int[] a = {1, 2, 3, 4, 9099, 312213, 543, 32, 4, 23};
System.out.println(a);//[I@1b6d3586
System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 9099, 312213, 543, 32, 4, 23]
printArray(a);//重复的方法
Arrays.sort(a);//数组排序:升序
System.out.println(Arrays.toString(a));
//Arrays.fill(a,0);//填充覆盖,全覆盖
System.out.println(Arrays.toString(a)); System.out.println("=======================================");
System.out.println(Arrays.toString(sort(a)));//冒泡排序
} /**
* 打印数组元素 //重复造轮子,多余了,都有;相当于Arrays.toString(a)
*
* @param arrays 数组
*/
public static void printArray(int[] arrays) {
for (int i = 0; i < arrays.length; i++) {
if (i == 0)
System.out.print("[");
if (i == arrays.length - 1) {
System.out.print(arrays[i] + "]");
} else
System.out.print(arrays[i] + ",");
}
System.out.println();
} /**
* 冒泡排序
* 1.比较数组中,两个相邻的元素,如果第一个数比第二个大,我们就交换他们的位置
* 2.每一次比较,都会产生一个最大,或者最小的数字
* 3.下一轮可以少一次排序
* 4.依次循环,直到结束
* @param array 需要排序的数组
* @return 排好后的数组
*/
public static int[] sort(int[] array){
//临时变量
int temp=0; //外层循环,判断我们这个要走多少次
for (int i = 0; i < array.length; i++) {
boolean flag=false;//优化语句,可以删除
//内层循环,比较判断两个数,如果第一个数比第二个数大则交换位置
for (int j = 0; j < array.length-1-i; j++) {
if (array[j+1]>array[j]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=true;//优化语句,可以删除
}
}
//优化语句,可以删除
if (flag==false){
break;
}
}
return array;
}
}
Java数组:多维数组(二维),Arrays类,冒泡排序的更多相关文章
- 06-01 Java 二维数组格式、二维数组内存图解、二维数组操作
二维数组格式1 /* 二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的 ...
- java基础-引用数据类型之二维数组(Array)
java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...
- Java 数组(三)二维数组
如果一维数组的各个元素仍然是一个数组,那么它就是一个二维数组.二维数组常用于表示表,表中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代表所在的列. 一.二维数组的创建 1.先声明, ...
- Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组
经常我们会在资源文件(res/strings.xml)定义字符串,一维数组,那定义二维数组?直接定义二维数组没找到,可以间接定义. 其实很简单,看过用过一次就可以记住了,一维数组估计大家经常用到,但是 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- php 将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序
最近再写项目的时候,碰到一个问题:如何将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序:实在是想不到哪个php库中有哪个函数能实现,只能自己写一个了,将代码写出来后,发现自己的代码繁琐,并 ...
- C 二维数组,以及自定义二维数组
C 二维数组,以及自定义二维数组 我们通常情况下是这样定义一个二维数组的: int a[10][15]; 我们分别查看一下a,a[0],*a 都是一样的值吧 我们可以这么理解: a是一个数组的数组 a ...
- JAVA中生成、解析二维码图片的方法
JAVA中生成.解析二维码的方法并不复杂,使用google的zxing包就可以实现.下面的方法包含了生成二维码.在中间附加logo.添加文字功能,并有解析二维码的方法. 一.下载zxing的架包,并导 ...
- Java实现带logo的二维码
Java实现带logo的二维码 二维码应用到生活的各个方面,会用代码实现二维码,我想一定是一项加分的技能.好了,我们来一起实现一下吧. 我们实现的二维码是基于QR Code的标准的,QR Code是由 ...
- PHP批量生成底部带编号二维码(二维码生成+文字生成图片+图片拼接合并)
PHP批量生成带底部编号二维码(二维码生成+文字生成图片+图片拼接合并) 需求: 输入编号如 : cb05-0000001 至 cb05-0000500 批量生成 以编号为名称的下图二维码,然后压缩 ...
随机推荐
- Windows10电脑优化和使用
本文将结合自身经验和短视频软件中的优化技巧,推荐一些Win10系统的优化和使用小技巧. 电脑优化 新电脑调出我的电脑等桌面图标: 右键桌面,选择个性化,左侧选择主题,在相关的设置中找到桌面图标设置,将 ...
- 高并发之ReentrantLock、CountDownLatch、CyclicBarrier
本系列研究总结高并发下的几种同步锁的使用以及之间的区别,分别是:ReentrantLock.CountDownLatch.CyclicBarrier.Phaser.ReadWriteLock.Stam ...
- macOS 没有鼠标 怎么使用 快捷键
macOS 没有鼠标 怎么使用 快捷键 mini 链接蓝牙鼠标 菜单选择 光标聚焦 上下选择 确认,选中 用键盘浏览菜单 若要使用这些快捷键,请先按下 Control-F2 或 Fn-Control- ...
- MathJax TeX & LaTeX
MathJax TeX & LaTeX mathcal https://leetcode-cn.com/problems/binary-search/solution/er-fen-cha-z ...
- React.createClass vs. ES6 Class Components
1 1 1 https://www.fullstackreact.com/articles/react-create-class-vs-es6-class-components/ React.crea ...
- Publish/Subscribe Pattern & Vanilla JavaScript
Publish/Subscribe Pattern & Vanilla JavaScript https://en.wikipedia.org/wiki/Publish–subscribe_p ...
- Internationalization API & ECMA-402
Internationalization API & ECMA-402 i18n https://caniuse.com/?search=Internationalization API In ...
- leetcode bug & 9. Palindrome Number
leetcode bug & 9. Palindrome Number bug shit bug "use strict"; /** * * @author xgqfrms ...
- 智能货柜 & 技术原理 (动态视觉识别 + 重力感应)
智能货柜 & 技术原理 (动态视觉识别 + 重力感应) 智能货柜 拥有智能化.精细化运营模式的智能货柜成为代替无人货架继前进的方式. 相比无人货架来说,智能货柜的技术门槛更高,拥有 RFID. ...
- Flutter CodePen challenges
Flutter CodePen challenges 挑战赛 https://mp.weixin.qq.com/s/qIYokWN9SVgr-F7YxbJuOQ CodePen Flutter 编辑器 ...