我是靠谱客的博主 幸福鞋垫,最近开发中收集的这篇文章主要介绍Java~数组的定义与使用(数组的概念及使用、数组的应用场景、常见数组例题题解)数组的概念及使用 数组练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

数组的概念及使用

 数组练习

数组转字符串(实现toString方法)

数组的拷贝(实现copyOf方法)

二分查找

冒泡排序


数组的概念及使用

数组可以看成是相同类型元素的一个集合,在内存中是一段连续的空间。

 数组的创建及初始化

类型[] 数组名 = new 类型[N];
//类型即 int、double等等,N表示数组的长度
//数组的静态定义及初始化
int[] arr = { 1, 2, 3, 4 };
int[] arr1 = new int[]{ 1, 2, 3, 4};
//数组的动态定义初始化
int[] arr2 = new int[5];

在Java中,也可以使用C语言中的数组定义方法,类似于int arr[] = { 1, 2, 3 }这种,但是不推荐这样做,容易造成数组的类型就是int类型这种误解。

在数组创建和初始化中需要注意的事项:

1.静态初始化时,“{ }”中的数据类型必须确保与“[ ]”前的数据类型一致;

2.静态初始化可以简写,省去后面的new int[],但是编译器在编译代码时,会自动还原new int[];

3.如果不确定数组中的内容,使用动态初始化,否则建议使用静态初始化;

4.如果未对数组中的元素进行初始化,数组中的元素有其默认值,具体默认值介绍如下表所示。

类型默认值
byte0
short0
int0
long0
float0.0f
double0.0
char/u0000
booleanfalse
引用类型null

数组的使用

数组的使用与在c语言中的使用基本一致,数组的下标是从0开始的,加入数组的长度为N,则数组的下标为0 ~ (N-1)。

在Java中,求一个数组的长度不需要像在C语言中那样利用for循环依次遍历,然后求出数组长度,只需要利用“ 数组名.length ”即可得到数组长度,例如:

public class TestDemo {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 8, 25, 46, 77, 100 };
System.out.println(arr.length);
}
}

数组的使用大概有三种方式:①保存数据;②传递参数;③作为函数的返回值. 

数组的输出 

打印数组的方式主要有两种,利用循环来打印、利用Arrays.toString()直接打印,循环也分为两种方式for语句和for-each语句。

例如:

import java.util.Arrays;
public class TestDemo {
public static void print(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public static void print1(int[] arr){
for (int x : arr) {
System.out.print(x + " ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 8, 25, 46, 77, 100 };
print(arr);//方法1:for语句打印
print1(arr);//方法2:for-each语句打印
System.out.println(Arrays.toString(arr));//方法3
}
}

 数组练习

数组转字符串(实现toString方法)

实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} , 返回的字符串为 "[1, 2, 3]", 注意 逗号 的位置和数量.


public class TestDemo {
public static String myToString(int... arr){
String ret = "[";
for (int i = 0; i < arr.length; i++) {
ret += arr[i];
if(i < arr.length - 1){
ret += ", ";
}
}
ret += "]";
return ret;
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4};
String ret = myToString(array);
System.out.println(ret);
}
}

 

数组的拷贝(实现copyOf方法)

实现一个方法copyOf,对一个整形数组进行拷贝,得到一个新数组

import java.util.Arrays;
public class HomeWork {
public static int[] copyOf(int[] original, int newLength){
int[] newArray = new int[newLength];
for (int i = 0; i < newLength; i++) {
newArray[i] = original[i];
}
return newArray;
}
public static void main(String[] args) {
int[] array = { 1, 3, 4, 6, 8 };
int[] array1 = copyOf(array, 3);
System.out.println("待复制的原数组: " + Arrays.toString(array));
System.out.println("复制产生的数组: " + Arrays.toString(array1));
}
}

二分查找

给定一个有序整形数组,实现二分查找

import java.util.Scanner;
public class HomeWork1 {
public static int binarySearch(int[] array, int key){
int left = 0;
int right = array.length - 1;
while(left <= right){
int mid = (left+right) / 2;
if(array[mid] == key){
return mid;
}else if(key > array[mid]){
left = mid + 1;
}else{
right = mid - 1;
}
}
return -1;
}
public static void main(String[] args){
int array[] = new int[]{ 1, 3, 4, 6, 8, 15, 26, 27, 31, 45, 66 };
Scanner scan = new Scanner(System.in);
while(scan.hasNextInt()){
int key = scan.nextInt();
int subscript = binarySearch(array, key);
if(subscript == -1){
System.out.println("未在数组中查找到: " + key);
}else{
System.out.println("成功查找到: " + key + " 下标为: " + subscript);
}
}
}
}

冒泡排序

给定一个整形数组,实现冒泡排序

import java.util.Arrays;
public class HomeWork3 {
public static void bubbleSort(int[] array){
boolean flag = true;
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - 1 - i; j++) {
if(array[j] > array[j + 1]){
flag = false;
int tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}
if(flag == true){
break;
}
}
System.out.println("排序成功");
}
public static void main(String[] args){
int array[] = new int[]{ 21, 100, 4, 6, 8, 15, 72, 27, 58, 45, 66 };
System.out.println(Arrays.toString(array));
bubbleSort(array);
System.out.println(Arrays.toString(array));
}
}

 

 

 

 

最后

以上就是幸福鞋垫为你收集整理的Java~数组的定义与使用(数组的概念及使用、数组的应用场景、常见数组例题题解)数组的概念及使用 数组练习的全部内容,希望文章能够帮你解决Java~数组的定义与使用(数组的概念及使用、数组的应用场景、常见数组例题题解)数组的概念及使用 数组练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部