Java数组常见应用详解【创建、遍历、排序、查找】

来源:脚本之家  责任编辑:小易  

因为是随机生成的数组,所以可能数组中没有小于10的数字,这时处理后的数组和之前一样看不到效果。多试几

本文实例讲述了Java数组常见应用。分享给大家供大家参考,具体如下:

双重for循环

for (int i=0;i<arr.length;i++){ 数组类型 x=arr[

外循环控制行,内循环控制列。

int [] a=new int[5];int b=0;Random random=new

//乘法表 for(int i = 1; i <= 9; i++) { for(int j = 1; j <= i ;j++) { System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); }

DecimalFormat

String[] a_arr=a.split(",");String[] b

#:一个数字

增强for(part1:part2){part3}; part2中是一个数组对象,或者是带有泛性的集

0:一个数字,不够位数用0补位

农村的大鹅太可怕了啊!战斗鹅啊!追着跑啊!不咬上你不罢休啊!问题你有时候还跑不过啊!  做个调查,有多少人觉得农村社会鹅是你人生中的噩梦?  说起社会鹅,格格我发现其实很多网友都跟我一样有着惨痛的经历。  首先,咱来看看鹅经常使用的嘴  看到那嘴里的一口小齿了吗?看到舌头上那一排排小齿了吗?你以为这些都是闹着玩的?大!错!特!错!人家这嘴长得,除了磨食物之外,另一个功能就是……咬你。不过对于鹅来说不能算咬,而应该算“拧”。跳起来咬着你一块肉扑腾着转个圈,这画面是不是想想都疼?你连小时候你妈拧你都受不了,更别说面对这张带齿的嘴了。  鹅身为家禽届的“大型”动物,翅膀也比鸡鸭强劲很多,甚至你会发现

DecimalFormat f = new DecimalFormat("###.##"); DecimalFormat f = new DecimalFormat("000.00000"); System.out.println(sum); System.out.println(f.format(sum)); System.out.println(f.format(34.567));

break 

市面上的手机音乐播放器有很多,但真正适合你的有几个呢?今天小编就带大家一起来深入了解一下各个音乐播放器的特性,帮助你找到最适合你的音乐播放器,同时小编也制作出了一份音乐播放器的排行榜名单,供各位朋友参考。工具/原料手机一枚音乐播放器方法/步骤1多米音乐。如果排除知名度以及在电脑端中使用影响等因素外,排在第一一定是多米音乐。多米音乐以它清新的界面,细腻的设计打动了每一个音乐爱好者,音质非常好,使用起来也很方便。特别是它的界面设计中的一些小东西很讨人喜欢,你点击暂停或播放按钮时,那个眼睛一样的按钮会闪一下;你点击一首音乐开始播放时,会有唱片一下的小东西飞到屏幕的底部,很好玩,是一款非常适合音乐爱好

用在 switch和循环中。

古钱币指古代货币。货币是商品交换的产物。中国是世界上最早使用铸币的国家。距今三千年前殷商晚期墓葬出土了不少“无文铜贝”,为最原始的金属货币。至西周晚期除贝比外还流通一些无一定形状的散铜块、铜锭等金属称量货币,这在考古发掘中也有出土。中国钱币创造和打破了中国世界纪录协会多项世界之最、中国之最。乾隆宝通现在可以卖多少钱,值不值钱,这个主要看货币本身的保存质量还有工艺,再加上当代对这个货币的抄作等,总得来说,保存上乘的乾隆宝通相对其它清朝的货币要相对高一些。

用在单层循环中,用来结束循环。

continue

狗狗一定要做绝育吗?其实这个决定权还是在主人手上,如果你有能力负担狗狗产下的小狗其实也就没必要做绝育了。不过如果条件不允许,做绝育也许对狗狗也有好处。关注优萌狗帮,养狗更轻松!狗狗绝育的好处:01-减少流浪狗狗减少不必要的狗狗,没人需要的狗狗数量,从而减少流浪狗狗数量,避免狗狗们遭受苦难悲惨的命运。02-减少患病概率给狗狗做绝育手术能使你的狗狗活的更健康,减少患病的机会。有研究表明绝育手术可以减少雌性狗狗患子宫和卵巢癌及乳腺癌的机会。特别是在雌性动物刚刚性成熟尚未生育就做绝育手术效果更明显。绝育手术可以使雄性动物减少患睾丸癌的机会,降低前列腺疾病的发病率。03-延长狗狗寿命给狗做绝育手术能使你

用在循环中。

作用 结束本次循环进行下一次循环条件判断。

对于双重循环,可以自定义一个标签,break或continue 到标签处。

一维数组 

Java 语言中提供的数组是用来存储固定大小的同类型元素。

声明数组

首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:

int[] arr;//声明数组,告诉计算机我要存储一组整数(推荐) 或 //int arr[];

int x1,x2,x3;//声明了3个int类型的变量 int [] n1,n2,n3;//声明了3个数组 int num1 [],num2,num3;//声明了一个int类型的数组num1,两个Int类型的变量。

创建数组

arr = new int[6];//创建一个数组,计算机在内存中分配6个空间,并初始化

数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 arr.length-1。

数组初始化

//动态初始化:我们制定长度,系统赋值。 int[] arr = new int[5];//0 //初始值 //整数:0  小数:0.0  布尔:false  char:\0000   //String:null   //静态初始化:我们赋值,系统分配长度(arr2.length) int[] arr2 = {11,22,33};

赋值数组

arr[2]=33;

栈stack

是作为构思算法的辅助工具,不是完全的数据存储工具。是插入和删除操作被限制在表的线性表。 只能从栈顶入栈,也只能从栈顶出站 是一种后进先出的结构

遍历数组

普通for循环

public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素 for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // 计算所有元素的总和 double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // 查找最大元素 double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + max); } }

增强for循环

public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素 for (double element: myList) { System.out.println(element); } } }

增强for循环的特点:

【1】简洁

【2】不能制定范围访问,只能访问全部

【3】不能反转输出,只能正序访问

【4】不能修改数组元素的值

数组排序

冒泡排序

package day4; public class Demo12 { public static void main(String[] args) { // 冒泡排序 int[] arr = {34,1,78,9,43}; int temp; for(int i = 0 ; i < arr.length-1;i++) {//轮 for(int j = 0; j < arr.length-1-i; j++) {//次 if(arr[j] > arr[j+1]) { temp = arr[j]; arr[j]= arr[j + 1]; arr[j + 1] = temp; } } } for(int n: arr) { System.out.println(n); } } }

选择排序

package day4; import java.util.Arrays; public class Demo13 { public static void main(String[] args) { // 选择排序 int [] arr = {5,12,3,78,345}; int temp; for(int i = 0; i < arr.length-1; i++) {//位置 for(int j = i + 1; j < arr.length; j++) { if(arr[i] > arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } for(int n:arr) { System.out.println(n); } // System.out.println(Arrays.toString(arr)); } }

数组查找方法

普通查找方法(效率比较低)

public class ArrayTest { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {4,6,8,33,66,44,99,54}; int num=searchKey(arr,66); System.out.println(num); } //查找一个元素在数组中的第一次出现的位置 public static int searchKey(int[] arr,int key) { for(int i=0;i

二分查找法(效率比较高)

public class binarySearch { public static void main(String[] args) { int[] arr = {9,12,15,24,36,41,59,68}; int num =searchArray(arr,12); System.out.println(num); } //二分查找。前天:数组必须是有序的。 /* * 思路: * 1.通过角标先获取中间角标上的元素 * 2.让该元素和要找的数据比较。 * 3.如果要找的数大了,缩小范围,要找的范围应该是 中间的角标+1---尾角标 * 如果要找的数效率,要找的范围 头角标---中间角标-1。 * 4.不断如此重复,就可以找到元素对应的角标。 * */ public static int searchArray(int[] arr,int key) { int max,min,mid; min = 0; max = arr.length-1; mid = (min+max)>>1; while(arr[mid]!=key) { if(key > arr[mid]) { min = mid + 1; }else{ max = mid - 1; } //判断元素是否存在。 if(max>1; } return mid; } }

public class ArrayTest1 { public static void main(String[] args) { int[] arr = {9,12,15,24,36,41,59,68}; int num =binarySearch(arr,44); System.out.println(num); } //二分查找。前天:数组必须是有序的。 /* * 思路: * 1.通过角标先获取中间角标上的元素 * 2.让该元素和要找的数据比较。 * 3.如果要找的数大了,缩小范围,要找的范围应该是 中间的角标+1---尾角标 * 如果要找的数效率,要找的范围 头角标---中间角标-1。 * 4.不断如此重复,就可以找到元素对应的角标。 * */ public static int binarySearch(int[] arr,int key) { //定义单个变量,记录头角标,尾角标,中间角标 int max,min,mid; min = 0; max = arr.length-1; while(min<=max) { mid = (min+max)>>1; if(key > arr[mid]) { min = mid + 1; }else if(key < arr[mid]) { max = mid - 1; }else { return mid; } } return -1; } }

数组的复制

package cn.java.study; import java.util.Arrays; public class Demo5 { public static void main(String[] args) { int[] arr1 = {1,4,6,83,45}; int[] arr2 = new int[arr1.length]; // 源数组 源数组起始位置 目标数组 目标数组起始位置 复制长度 System.arraycopy(arr1, 1, arr2, 2, 3); System.out.println(Arrays.toString(arr2)); } }

常用API之Arrays类

package cn.java.study; //工具类 import java.util.Arrays; public class Demo5 { public static void main(String[] args) { //Arrays int[] arr = {1,4,7,434,232,55}; //将数组转换成字符串 System.out.println(Arrays.toString(arr)); //对数组进行升序排序 Arrays.sort(arr); System.out.println(Arrays.toString(arr)); //排序数组名 排序数组元素开始位置 排序数组元素结束位置(实际上,取到终止位置减一)[起始位置,终止位置) Arrays.sort(arr,2,4); System.out.println(Arrays.toString(arr)); //多核处理器下并行操作使用 Arrays.parallelSort(arr); //二分查找下标,数组 查找的数字,返回的是插入点,没有的话返回的是负的插入点减一的值 System.out.println(Arrays.binarySearch(arr, 8)); //数组比较:元素的个数和对应位置的数组元素相同 int[] arr1 = {1,2,5}; int[] arr2 = {1,2,5}; System.out.println(Arrays.equals(arr1, arr2)); //数组的填充,将数组中所有的元素替换为666 Arrays.fill(arr, 666); System.out.println(Arrays.toString(arr)); //数组的复制,返回的是一个数组, (要复制的数组,几个元素) int[] arr3 = Arrays.copyOf(arr1, 2); System.out.println(Arrays.toString(arr3)); } }

二维数组

格式1:

int[][] arr = new int[3][2]; 定义了名称为arr的二位数组 二维数组中有3个一维数组 每一个一维数组中有2个元素 一维数组的名称分别为arr[0],arr[1],arr[2] 给第一个一维数组1角标位赋值为666的写法是:arr[0][1] = 666;

System.out.println(arr); // [[Ie6f7d2二位数组实体 e6f7d2是哈希值,[是数组,[[二位数组

格式2:

int[][] arr = new int[3][]; arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[2];

更多关于java相关内容感兴趣的读者可查看本站专题:《Java数组操作技巧总结》、《Java字符与字符串操作技巧总结》、《Java数学运算技巧总结》、《Java数据结构与算法教程》及《Java操作DOM节点技巧总结》

希望本文所述对大家java程序设计有所帮助。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

Java数组遍历,求最大值,选择排序,冒泡排

/** * *年5月28日下午9:52:57 * * @author season TODO 测试已通过,获取财富值 * */public class ArrayOperation { /** * 对数组 arr 进行冒泡排序升序排序 * * @param arr * 目标数组 */ public static void bubbleToUp(int[] arr) { if (null == arr)// 数组为空时,退出该方法 return; for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } /** * 使用选择排序法对目标数组进行降序排序 * * @param arr * 目标数组 */ public static void selectToDown(int[] arr) { for (int i = 0; arr != null && i < arr.length; i++) { int flag = i; for (int j = i + 1; j < arr.length; j++) { if (arr[j] > arr[flag]) flag = j; } if (flag != i) { int temp = arr[i]; arr[i] = arr[flag]; arr[flag] = temp; } } } /** * 遍历数组所有元素 * * @param arr * 目标数组 */ public static void displayArray(int[] arr) { System.out.println(); for (int num : arr) System.out.print(" " + num); } public static void main(String[] args) { // 初始化数组 int[] arr = { 20, -878, 90, 78, 89, -908 }; // 首先进行冒泡排序(升序) bubbleToUp(arr); displayArray(arr); // 然后进行选择排序(降序) selectToDown(arr); displayArray(arr); } }

import java.util.Scanner; /** * *年5月31日下午12:01:08 * * @author season TODO 添加了输进,望采纳 * */public class ArrayOperation { //添加下面这个方法,前面的方法不变,因为字数*,不能粘贴全部代码,不好意思 /** * initArray TODO 初始化目标数组 * * @param arr * 目标数组 */ public static void initArray(int[] arr) { Scanner input = new Scanner(System.in); for (int index = 0; arr != null && index < arr.length; index++) { System.out.print("\nInput arr[" + index + "]: "); arr[index] = input.nextInt(); } input.close(); } public static void main(String[] args) { // 定义数组 int[] arr = new int[5]; initArray(arr); System.out.println("\n\nBefor sort: "); displayArray(arr); // 首先进行冒泡排序(升序) bubbleToUp(arr); displayArray(arr); // 然后进行选择排序(降序) selectToDown(arr); displayArray(arr); } }

求java一个算法,遍历一个数组,并用另外一个数组记录第一个数组从小到大排序的角标值

public class Test { public static void main(String[] args) {

// 需要排列的数组a

int[] a = new int[] { 3, 22, 11, 5, 400, 99, 20, 22, 5 };

// 需要记录下标的数组b

int[] index = new int[a.length];

// 初始化下标

for (int i = 0; i < index.length; i++) {

index[i] = i;

}

// 用冒泡法排序

for (int i = 0; i < a.length; i++) {

for (int j = i; j < a.length; j++) {

if (a[i] > a[j]) {

int temp = a[i];

a[i] = a[j];

a[j] = temp;

// 下标排序

int tempindex = index[i];

index[i] = index[j];

index[j] = tempindex;

}

}

}

// 打印输出

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + " ");

}

System.out.println("");

for (int i = 0; i < a.length; i++) {

System.out.print(index[i] + " ");

}

}

}

输出结果:

3 5 5 11 20 22 22 99 400

0 3 8 2 6 7 1 5 4

Java中,定义一个1~100的数据,存放进数组,并遍历它。

1、定义一个大小是100的数组

int arr[]=new int[100];//定一个100大小的整型数组

2、循环赋值1-100的数for(int i=1;i<=100;i++){

  arr[i-1] = i;//赋值1-100的数

}

3、遍历数组for(int i=0;i<arr.length;i++){//数组最大值是arr.length,循环遍历数组

  System.out.println(arr[i]);//输出数组内的元素

}

【java】怎么随机的遍历一个数组内的所有元素?

import java.util.Random;

import java.util.Vector;

public class test{

/**

* @param args

*/

public static void main(String[] args) {

String[] strs = { "a", "b", "c", "d"};

int strsLength = strs.length;

Vector<Integer> v = new Vector<Integer>();

Random r = new Random();

boolean flag = true;

while (flag) {

int i = r.nextInt(strsLength);

if (!v.contains(i))

v.add(i);

if (v.size() == strsLength)

flag = false;

}

for (int i = 0; i < strsLength; i++) {

System.out.println(strs[v.get(i)]);

}

}

}本回答被提问者采纳

两道java 数组题,遍历啥的

第一题:

Scanner s = new Scanner(System.in);

int intarrayLength = s.nextInt();

Integer[] intarray=new Integer[intarrayLength];

int i=0;

for(;i<5;){

intarray[i]=Integer.parseInt(s.next());

System.out.print("第"+ (i+1)+"个数的值是:"+intarray[i] +" ");

i++;

}

int sum=0;

for(int y=0;y<intarray.length;y++){

sum+=intarray[y];

}

System.out.println("求n个数的和:"+sum);

System.out.println("求n个数的平均数:"+(float)sum/intarray.length);

for(int y=0;y<intarray.length;y++){

Arrays.sort(intarray);

System.out.print("第"+ (y+1)+"个数的值是:"+intarray[y] +" ");

}

  • 本文相关:
  • java中遍历数组使用foreach循环还是for循环?
  • java数组遍历 删除remove(示例代码)
  • java中使用while语句自增运算遍历数组典型实例
  • java数组的遍历与求和知识点
  • java中的数组排序方式(快速排序、冒泡排序、选择排序)
  • java string[]字符串数组自动排序的简单实现
  • java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
  • java利用冒泡排序对数组进行排序
  • java编程实现中英混合字符串数组按首字母排序的方法
  • java实现数组去除重复数据的方法详解
  • java中byte、byte数组与int、long的转换详解
  • java 数组声明、创建、初始化详解
  • java实现的并发任务处理实例
  • 基于java代码实现游戏服务器生成全局唯一id的方法汇总
  • java编程实现的二维数组转置功能示例
  • java中匿名类的两种实现方式
  • java在制作jar包时引用第三方jar包的方法
  • java hashmap两种简便排序方法解析
  • 浅析java编程中类和对象的定义
  • 双token实现token超时策略示例
  • 分享spring的下载组件
  • juc之semaphore源码分析
  • Java数组遍历,求最大值,选择排序,冒泡排
  • 求java一个算法,遍历一个数组,并用另外一个数组记录第一个数组从小到大排序的角标值
  • Java中,定义一个1~100的数据,存放进数组,并遍历它。
  • 【java】怎么随机的遍历一个数组内的所有元素?
  • 两道java 数组题,遍历啥的
  • Java数组遍历
  • Java 如何遍历数组里面的数据?
  • 用JAVA创建一个int类型的数组长度为5,循环录入5个值,存入数组中,并将这个数组遍历输出
  • java循环遍历三个数组
  • 跪求详解~java中foreach方法来遍历数组的详解,主要问题是for(a:b)这里的问题不太懂!...
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved