java中遍历数组_java遍历object数组

java中遍历数组_java遍历object数组遍历数组目录遍历数组三种方式:for循环遍历foreach语句遍历Arrays工具类中toString静态方法遍历Arrays.deepToString()与Arrays.toString()的区别Java中对Array数组的常用操作(了解即可)三种方式: for for-each, toString 题目描述给一个数组:intArr={{5,7,15},{8,4,11},{3,6,13}};for循环遍历通常遍历数组都是使用f

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

遍历数组

目录

遍历数组

三种方式:

for循环遍历

foreach语句遍历

Arrays工具类中toString静态方法遍历

Arrays.deepToString()与Arrays.toString()的区别

Java中对Array数组的常用操作(了解即可)


三种方式:

  1. for

  2. for-each,

  3. toString

题目描述

给一个数组:int Arr={
{5,7,15},{8,4,11},{3,6,13}};

for循环遍历

通常遍历数组都是使用for循环来实现。遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。

for循环本质就是把数组中的每个数据打印出来。

程序:

package 数组;
public class for遍历二维数组 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int Arr[][]={
  
  {5,7,15},{8,4,11},{3,6,13}};
        for (int i = 0; i < Arr.length; i++) {
            for (int j = 0; j < Arr[i].length; j++) {
                System.out.print(Arr[i][j]+" ");
            }
        }
    }
}
​
//运行结果:
//5 7 15 8 4 11 3 6 13

foreach语句遍历

  • 遍历数组就是获取数组的每个元素。通常遍历数组都是使用for循环来实现的,但是for循环不够简洁,下面我们简要介绍一下使用foreach语句来实现遍历数组的方法。

  • java5之后,Java提供了一种更简洁的循环:foreach循环,这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组时,无须获得数组和集合长度,无须根据索(下标)引来访问数组元素,foreach循环自动遍历数组和集合的每一个元素。

  • 语法格式:

    for(type element: array)
    {
        System.out.println(element);
    }

注: foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。 因此不要对foreach的循环变量赋值。

//例如:
    public static void main(String [] args){
            int [] arr={1,2,3,4,5};
             for(int a:arr){
                a=0;
            System.out.print(a);
       }
       System.out.print(“\n”+a[0]);
}
运行结果:
00000
1

从上面结果可以看出,由于在foreach循环中对数组进行赋值,结果导致不能正确遍历数组元素。而且当再次访问第一个数组元素时,发现数组元素依然没有改变。

程序:

package 数组;
public class foreach遍历二维数组 {
public static void main(String[] args) {
    // TODO Auto-generated method stub
    int Arr[][]= {
  
  {5,7,15},{8,4,11},{3,6,13}};
    System.out.println("数组中的元素是 ");
    int i=0;
    for(int x[]: Arr) {//行
        i++;
        int j=0;
        for(int e:x) {//列
            j++;
            if(i==Arr.length&&j==x.length) {
                System.out.print(e);//输出最后一个元素,后面不加逗号
            }else
                System.out.print(e+"、");
        }
        
    }       
}
​
/*运行结果:
数组中的元素是
5、7、15、8、4、11、3、6、13
*/

Arrays工具类中toString静态方法遍历

利用Arrays工具类中的toString静态方法可以将一维数组转化为字符串形式并输出。 已知打印一维数组的API为System.out.println ( Arrays.toString ();其参数为数组名或数组指针,其支持的数据类型有很多,如:int[]、char[]、byte[]等。

package 数组;
​
import java.util.Arrays;
​
public class toString遍历二维数组 {
public static void main(String[] args) {
    // TODO Auto-generated method stub
    int Arr[][]={
  
  {5,7,15},{8,4,11},{3,6,13}};
    System.out.println("Arr:"+Arrays.toString(Arr));
    int b[][]={
  
  {5,7,15},{8,4,11},{3,6,13}};
    System.out.println("Arr:"+Arrays.deepToString(b));
}
/*
运行结果:
Arr:[[I@15db9742, [I@6d06d69c, [I@7852e922]
Arr:[[5, 7, 15], [8, 4,11], [3, 6, 13]]
注释:
注: *Arr:[[I@15db9742, [I@6d06d69c, [I@7852e922]*    
这种输出结果是因为:Arr是一个二维数组。相当于一个长度为3的数组,但是这个数组的元素还是是数组。
当执行Arrays.toString的时候相当于遍历数组,并且输出数组的元素,但是这个数组的元素是数组,所以这里输出的是数组元素的地址。
*/

Arrays.deepToString()与Arrays.toString()的区别

  • Arrays.deepToString()主要用于数组中还有数组的情况,而Arrays.toString()则相反,对于Arrays.toString()而言,当数组中有数组时,不会打印出数组中的内容,只会以地址的形式打印出来。

public class test {
​
public static void main(String[] args) {
int a[] = {1, 2, 3};
System.out.println(Arrays.toString(a));
int b[][] = {
  
  {1, 2, 3}, {4, 5, 6}};
System.out.println(Arrays.toString(b));
System.out.println(Arrays.deepToString(b));}
}
/*结果:
[1, 2, 3]
[[I@14ae5a5, [I@7f31245a]
[[1, 2, 3], [4, 5, 6]]
*/

Java中对Array数组的常用操作(了解即可)

​
import java.util.*;
public class ArrayPrint {
public static void main(String[] args){
//声明数组
String [] arr;
int arr1[];
  
//初始化数组
int arr2[]=new int[]{1,2,3,4,5};
String[] array1={"马超","马云","关羽","刘备","张飞"};
String[] array2=new String[]{"黄渤","张艺兴","孙红雷","小猪","牙哥","黄磊"};      
String[] array=new String[5];
   
//查看数组的长度
int length=array1.length;
System.out.println("length:  "+array1.length);
  
//输出数组
System.out.println(array1);     //结果:[Ljava.lang.String;@32f22097
System.out.println("arr2:  "+Arrays.toString(arr2));
  
//遍历数组
for (int i = 0; i < array1.length; i++) {
         System.out.println(array1[i]);
}
​
//int数组转成string数组
int[]  array3={1,2,3,4,5,6,7,8,9,0};
String arrStrings=Arrays.toString(array3);
System.out.println("arrStrings:"+arrStrings);
  
//从array中创建arraylist
ArrayList <String> arrayList=new ArrayList<String>(Arrays.asList(array1));
System.out.println("arrayList:"+arrayList);
  
//数组中是否包含某一个值
String a="马超";
if (Arrays.asList(array1).contains(a)) {
    System.out.println("马超在这里");
}
  
//将数组转成set集合
Set<String> set=new HashSet<String>(Arrays.asList(array2));
System.out.println("set:"+set);
  
//将数组转成list集合
List<String> list_1=new ArrayList<String>();
for (int i = 0; i < array2.length; i++) {
    list_1.add(array2[i]);
}
System.out.println("list_1:"+list_1);
​
String[] arrStrings2={"1","2","3"};
List<String > list2=Arrays.asList(arrStrings2);
System.out.println("list2:"+list2);
    //Arrays.fill()填充数组
int[] arr3=new int[5];
Arrays.fill(arr3, 10);  //将数组全部填充10
System.out.println("arr3:"+arr3);
for (int i = 0; i < arr3.length; i++) {
    System.out.println("arr3[i]:"+arr3[i]);
}
//数组排序
int[] arr4 = {3, 7, 2, 1, 9};
Arrays.sort(arr4);
System.out.println("arr4:"+arr4);
for (int i = 0; i < arr4.length; i++) {
    System.out.println("arr4[i]:"+arr4[i]);
}
  
int[] arr5 = {3, 7, 2, 1, 9,3,45,7,8,8,3,2,65,34,5};
Arrays.sort(arr5, 1, 4);  //从第几个到第几个之间的进行排序
for (int i = 0; i < arr5.length; i++) {
    System.out.println("arr5[i]:"+arr5[i]);
}
    //复制数组
int[] arr6 = {3, 7, 2, 1};
int[] arr7=Arrays.copyOf(arr6, 10);  //指定新数组的长度
  
int[] arr8=Arrays.copyOfRange(arr6, 1, 3); //只复制从索引[1]到索引[3]之间的元素(不包括索引[3]的元素)
for (int i = 0; i < arr8.length; i++) {
    System.out.println(arr8[i]);
}
  
//比较两个数组
int[] arr9 = {1, 2, 3, 4,5,6,7,8,9,0};
boolean arr10=Arrays.equals(arr6, arr9);
System.out.println(arr10);
  
//去重复
//利用set的特性
int[] arr11 = {1, 2, 3, 4,5,6,7,8,9,0,3,2,4,5,6,7,4,32,2,1,1,4,6,3};
Set<Integer> set2=new HashSet<Integer>();
for (int i = 0; i < arr11.length; i++) {
    set2.add(arr11[i]);
}
    System.out.println(set2);
int[] arr12 = new int[set2.size()];
int j=0;
for (Integer i:set2) {
    arr12[j++]=i;
}
System.out.println(Arrays.toString(arr12));
}
}
/*
打印结果:
打印结果:
length:  5
[Ljava.lang.String;@7852e922
arr2:  [1, 2, 3, 4, 5]
马超
马云
关羽
刘备
张飞
arrStrings:[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
arrayList:[马超, 马云, 关羽, 刘备, 张飞]
马超在这里
set:[小猪, 牙哥, 黄渤, 黄磊, 孙红雷, 张艺兴]
list_1:[黄渤, 张艺兴, 孙红雷, 小猪, 牙哥, 黄磊]
list2:[1, 2, 3]
arr3:[I@4e25154f
arr3[i]:10
arr3[i]:10
arr3[i]:10
arr3[i]:10
arr3[i]:10
arr4:[I@70dea4e
arr4[i]:1
arr4[i]:2
arr4[i]:3
arr4[i]:7
arr4[i]:9
arr5[i]:3
arr5[i]:1
arr5[i]:2
arr5[i]:7
arr5[i]:9
arr5[i]:3
arr5[i]:45
arr5[i]:7
arr5[i]:8
arr5[i]:8
arr5[i]:3
arr5[i]:2
arr5[i]:65
arr5[i]:34
arr5[i]:5
7
2
false
[0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9]
*/

原文链接:我爱你

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191972.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Jetson TX1 硬件配置概览[通俗易懂]

    Jetson TX1 硬件配置概览[通俗易懂]GPIO、I2C、I2S、SPI、带流控制的TTL UART等接口  丰富的接口给了今后基于Jetson TX1进行扩展开发的无限可能,即可以通过TTL UART、GPIO等接口实现其它单片机、嵌入式系统的所有功能外,还能通过自身强大的性能,升任其它单片机、嵌入式系统,如树梅派等无力支撑的高数据密度业务和高处理实时性业务,如智能机器人,机器人,无人驾驶汽车等。摄像头扩展头 

  • jenkins自定义构建参数_jenkins怎么构建项目

    jenkins自定义构建参数_jenkins怎么构建项目前言当我们的自动化项目越来越多的时候,在代码仓库会提交不同的分支来管理,在用jenkins来构建的时候,我们希望能通过参数化构建git仓库的分支。下载安装GitParameter插件系统管理-

  • 电赛 | 循迹小车(省电赛一等奖作品)

    电赛 | 循迹小车(省电赛一等奖作品)点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!往期资料==菜单栏下有更多资料资源分享|嵌入式相关资源分享|编程语言类资源分享|Linux相关资料资源…

  • [深度学习] RNN对于变长序列的处理方法, 为什么RNN需要mask

    [深度学习] RNN对于变长序列的处理方法, 为什么RNN需要mask一Padding文本数据在处理的时候,由于各样本的长度并不一样,有的句子长有的句子短。抛开动态图、静态图模型的差异,由于需要进行矩阵运算,句长需要是等长的才可以,这就需要padding操作。padding一般是用最长的句子长度为最大长度,然后其他样本补0到最大长度,这样样本就是等长的了。但是注意padding后的样本如果不作处理只用普通的循环神经网络来做的话其实是有影响的,因为即使输入…

  • Win10 CMD命令大全—超好用快捷键

    Win10 CMD命令大全—超好用快捷键一、WindowsCMD命令大全1、按组合键Win(Windows图标键)+R键打开运行窗口,输入“cmd”按回车即可打开cmd命令提示符2、在窗口右击选择属性可进行个性化设置~命令功能1、calc启动计算器2、appwiz.cpl程序和功能3、certmgr.msc证书管理实用程序4、charmap启动字符映射表5、chkdsk.exeChkdsk磁盘检查(管理员身份运行命令提示符)6、cleanmgr打开磁盘清理工具7、

  • python中的静态方法和类方法

    python中的静态方法和类方法

    2021年11月19日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号