【Java基础学习笔记】4、数组及常用方法整理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Java基础学习笔记】4、数组及常用方法整理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4700字,纯文字阅读大概需要7分钟。
内容图文
![【Java基础学习笔记】4、数组及常用方法整理](/upload/InfoBanner/zyjiaocheng/602/e1a960045ff542beb2cd6192db7931a8.jpg)
文章目录
一、数组简单介绍
1、数组的定义
数组是用来储存固定大小的同种类型元素的集合。
数组变量是引用变量。
(1)声明数组
数组类型[ ] 数组名称;
int[] num;//整数数组
char[] character;//字符数组
boolean[] flag;//布尔类型数组
(2)创建数组
使用new命令来创建一个新的数组。
int[] num;//整数数组
num=new int[10];//创建新的数组,并将这个数组的引用赋值给num
同样,可以将(1)和(2)中的步骤合二为一:
int[] num=new int[10];
//声明数组变量,创建新数组,并将新数组的引用赋值给声明的数组变量
常用定义数组共有三种方法:
int[] num=new int[5];//方法1
int[] num=new int[]{1,2,3,4,5};//方法2
int[] num={1,2,3,4,5};//方法3
//数组下标从0开始,到(数组长度-1)结束。
2、数组常用方法
(1)输出一个数组
需要导入java.util.Arrays,调用Arrays.toString(数组名)方法。
代码示例
import java.util.Arrays;//导入包
public class Demo01 {
public static void main(String[] args) {
int[] src = {1,2,3,4,5,6};
System.out.println(Arrays.toString(src));//调用方法
}
}
结果如下:
(2)将字符串转化为字符数组
利用toCharArray()方法,声明 字符数组=字符串变量.toCharArray()。
代码示例:
public static void main(String[] args) {
String str="goodbye";
char[] ch=str.toCharArray();
System.out.println(Arrays.toString(ch));
}
结果如下:
(3)数组的复制
使用Arrays.copyOf()方法。
声明的新数组=Arrays.copyOf(原数组,新数组长度);
代码示例:
public static void main(String[] args) {
int[] num={1,2,3,4,5};
int[] newnum=Arrays.copyOf(num,7);
System.out.println(Arrays.toString(newnum));
}
结果如下:
Arrays.copyOf()方法是整个复制数组,有时候显得不够灵活,此时可以使用System.arraycopy()方法。
System.arraycopy(原数组,原数组开始复制的下标,新数组,新数组开始粘贴的下标,复制长度);
代码如下:
public static void main(String[] args) {
int[] num={1,2,3,4,5};
int[] newnum=new int[6];
System.arraycopy(num,1,newnum,0,3);
/*
原数组num,num[1]开始复制,新数组newnum,
newnum[0]开始复制,一共复制3位。
*/
System.out.println(Arrays.toString(newnum));
}
结果如下:
相比Arrays.copyOf()方法来说,System.arraycopy()更加灵活,但是需要注意复制长度过长和复制粘贴起始下标的值,防止下标越界的问题。
二、数组排序
(1)Arrays.sort()方法
Arrays.sort(数组名),这是一个void方法,没有返回值,原数组中的数字会从小到大排好。
代码示例:
public static void main(String[] args) {
int[] num={32,3,41,5,66,74};
System.out.println(Arrays.toString(num));//原数组
Arrays.sort(num);//进行排序
System.out.println(Arrays.toString(num));//排序后的数组
}
结果如下:
(2)冒泡排序
冒泡排序是一种简单的排序算法,通过遍历比较相邻的两个元素(设从小到大排),将放置位置错误的元素(大–小)交换顺序(小–大)。重复工作直到没有元素需要进行交换,说明排序工作已经完成。如同汽水中的泡泡缓慢浮出水面,故以此命名。冒泡排序是一种稳定的排序方式
代码示例:
public static void main(String[] args) {
int[] arr={33,4,32,56,7,45};
System.out.println(Arrays.toString(arr));//原数组
for(int i = 0; i < arr.length - 1; i++) {
/*一次次遍历,每次都有一个数浮出水面(不需再比),
故每次遍历长度减1*/
for(int j = 0; j < arr.length - 1 - i; j++) {
/*每次遍历时比较相邻两个数大小,
若错误便交换位置(示例为从小到大)
*/
if (arr[j] > arr[j + 1]) {
/*使用局部变量储存arr[j]的值,arr[j]被赋arr[j+1]
的值后再将储存着arr[j]的值的temp的值赋予arr[j+1]
完成值的交换
*/
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
//tip:相同变量相邻,arr[j]挨着,arr[j+1]也挨着
}
}
}
System.out.println(Arrays.toString(arr));//输出排序后的数组
}
结果如下:
(3)选择排序
选择排序是一种简单直观的排序算法,从数组中选择出一个最大/最小的数值,将其放在最前面,再从剩下未排序的数组中选择出一个最大/最小的数,放在已排序的数组的末尾,以此类推,直到未排序的数据元素个数为零。相比冒泡排序,选择排序更快捷,但是更不稳定。
代码示例:
public static void main(String[] args) {
int[] num={23,45,3,123,22,37,75};
System.out.println(Arrays.toString(num));//输出原数组
for (int i = 0; i < num.length; i++) {
int temp = i;//假设未排序数组第一个元素最小
//遍历剩下的元素
for (int j = i; j < num.length; j++) {
if (num[temp] > num[j]) {
temp = j;//当发现比目前下标元素更小的,更换标记下标
}
}
//交换两个元素位置
int t = num[i];
num[i] = num[temp];
num[temp] = t;
}
System.out.println(Arrays.toString(num));//输出数组
}
结果如下:
(4)插入排序
插入排序是一种简单的排序算法,适合少量元素的排序,其基本思想是在已经排好序的数组中插入新元素,从而生成一个元素个数+1的新数组。插入排序是一种稳定的排序方式。
代码示例:
public static void main(String[] args) {
int[] num={23,16,95,74,93};
System.out.println(Arrays.toString(num));//输出原数组
for (int i=1;i<num.length;i++) {
for(int j=i;j>0&&(num[j]<(num[j-1]));j--) {
int temp=num[j];
num[j]=num[j-1];
num[j-1]=temp;
}
}
System.out.println(Arrays.toString(num));//输出新数组
}
结果如下:
内容总结
以上是互联网集市为您收集整理的【Java基础学习笔记】4、数组及常用方法整理全部内容,希望文章能够帮你解决【Java基础学习笔记】4、数组及常用方法整理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。