一、遍历

for-each即增强for循环,是JDK1.5新增加的功能,专门用于读取数组或集合中所有的元素,即对数组进行遍历。

 1 //数组遍历 for-each
 2 public class Test_0312_01
 3 {
 4     public static void main(String[] args)
 5     {
 6         int arr[]=new int [5];
 7         for(int i=0;i<arr.length;i++){ //常规遍历的方法
 8             arr[i]=2*i+1;
 9         }
10         for(int i=0;i<arr.length;i++){
11             System.out.printf("%-4d",arr[i]);
12         }
13         System.out.println();
14         //for-each循环 只能用于读取数组元素的值,不能修改元素的值
15
16         for(int temp:arr){ //前边是定义个整型的变量temp,没有下标,中间是冒号,后边数组的名字
17             System.out.printf("%-4d",temp); //注意后边写的是临时变量temp,不是数组arr
18         }
19
20         System.out.println();
21         String arr2[]={"李白","ABC","@&"};
22         for(String temp:arr2){
23             System.out.printf("%-5s",temp);
25         }
26
27     }
28 }

二、数组元素_复制&删除&增加

System类里也包含了一个static void arraycopy(object src,int srcpos,object dest, int destpos,int length)方法,该方法可以将src数组里的元素值赋给dest数组的元素,其中

srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素。

函数:   System.arraycopy(src---源数组, srcPots---源数组起始下标, dest----目标数组  ,destPots---目标数组起始下标, length---拷贝长度是多少)

 1 //数组的复制拷贝与删除增加指定位置的元素
 2 public class Test_0312_02
 3 {
 4     //复制一个数组到另一个数组 s:送进来的源数组 srcPots:源数组的起始位置 destPots:目标数组的起始位置 length:要复制的长度
 5     public static void copyElement(String[] s, int srcPots,int destPots,int length){
 6         String s1[]= new String[s.length];
 7
 8         System.arraycopy(s,srcPots,s1,destPots,length);//核心语句
 9
10         for(int i=0;i<s1.length;i++)
11             System.out.printf("%-6s",s1[i]);
12
13         System.out.println();
14     }
15     //从一个数组中删除一个元素 核心下标index+1覆index s:送进来的源数组 index:要删除元素的下标。源下标srcPlots=index
16     public static void deleteElement(String[] s,int index){//index=2  目标下标destPlots=index    |   0  1  2  3  4
17
18         System.arraycopy(s,index+1,s,index,s.length-1-index);//核心语句                          |a  b  c  d  e
19
20         s[s.length-1]=null;// s.length=5 s.length-1=4(下标的上限)                          |删除后a  b  d  e  null
21
22         for(int i=0;i<s.length;i++)
23             System.out.printf("%-6s",s[i]);
24
25         System.out.println();
26
27
28     }
29
30    //往一个数组中指定位置增加一个元素
31    public static void addElement(String[] s,int index,String temp){//index:要在下标为index的位置插入元素
32
33        String s2[]= new String[s.length+1]; //新建一个数组,且长度延长1
34
35        System.arraycopy(s,0,s2,0,index); // 把下标为index的元素前边的所有元素复制到s2数组,源数组和目标数组的下标均为0,长度为index(下标0到index-1有index个数)
36
37        System.arraycopy(s,index,s2,index+1,s.length-index); //0 - (index-1) 共index个数字,总个数-前(index-1)个数=要移动长度
38
39        s2[index]=temp; //从index位置开始每个数字后移1位,最后一步把插入的新元素放在index位置
40
41        for(int i=0;i<s2.length;i++)
42             System.out.printf("%-6s",s2[i]);
43
44         System.out.println();
45
46
47    }
48
49     public static void main(String[] args) //主方法
50     {
51
52         String str[]={"a","b","c","d","e"};
53
54         System.out.printf("%-6d%-6d%-6d%-6d%-6d\n",0,1,2,3,4);
55
56         for(String temp:str){
57
58             System.out.printf("%-6s",temp);
59
60         }
61         System.out.println();
62
63         copyElement(str,1,2,3);  //从源数组的下标为1的位置(开始位置)复制到目标数组下标为2的位置(开始位置),长度为3
64
65         deleteElement(str,2);//把下标为2的元素删除
66
67         String str2[]={"a","b","c","d","e"};//执行完上步以后会把"c"删除,故重新复制一遍原来的str数组
68
69         addElement(str2,2,"f");//在下标为2的位置上插入一个元素
70
71
72
73
74
75         /*String s2[]=new String[10];
76
77         System.arraycopy(s1,2,s2,6,3);//2:代表从s1的下标为2的地方开始复制(即从字符“c”处开始复制) 6:代表从s2下标为6的地方开始接受
78
79         for(String temp:s2)  //for-each遍历的应用                   3:代表复制长度为3
80         {
81             System.out.printf("%-6s",temp);
82         } */
83
84
85     }
86 }

三、java.util.Arrays类

JDK提供的java.util.Arrays类,包含了常用的数组操作(即自带各种方法),方便我们日常开发。Arrays类包含了:排序 (   Arrays.sort( a)   )、查找( Arrays.binarySearch(a,2) )、

填充 (Arrays.fill(a, 1) 仅限一维,多维要用循环)、 打印内容(Arrays.toString(a)) 等常见的操作。【以数组a为例】

【代码示例】

 1 import java.util.*;
 2
 3 public class Test_0312_03
 4 {
 5     public static void main(String[] args)
 6     {
 7         int a[]={3,4,2,1};
 8
 9         int b[]=new int[5];
10
11         System.out.println(a);//会输出数组a的哈希地址
12
13         System.out.println(Arrays.toString(a)); //打印 会输出数组a中的内容,不同于Object中的toString()
14
15         Arrays.sort(a); //排序
16
17         System.out.println(Arrays.toString(a));
18
19         System.out.println(Arrays.binarySearch(a,4)); //二分查找,使用前必须对它进行排序 若有这个数会输出这个数的下标,否则输出负数
20
21         System.out.println(Arrays.binarySearch(a,7));
22
23         Arrays.fill(b, 6);//填充,多用于赋初值
24
25         System.out.println(Arrays.toString(b));
26
27
28     }
29 }

转载于:https://www.cnblogs.com/ID-qingxin/p/10511578.html

[19/03/12-星期二] 数组_遍历(for-each)复制java.util.Arrays类相关推荐

  1. java的知识点17——java.util.Arrays类、多维数组

    java.util.Arrays类 Arrays类包含了:排序.查找.填充.打印内容等常见的操作. 打印数组 package cn.dym08; import java.util.Arrays;pub ...

  2. 要想数组用的 6,怎能不懂 java.util.Arrays

    java.util.Arrays 类就是为数组而生的专用工具类,基本上常见的对数组的操作,Arrays 类都考虑到了,这让我由衷地觉得,是时候给该类的作者 Josh Bloch.Neal Gafter ...

  3. 教妹学Java:数组专用工具类 Java.util.Arrays

    数组专用工具类 "哥,数组专用工具类是专门用来操作数组的吗?比如说创建数组.数组排序.数组检索等等."三妹的提问其实已经把答案说了出来. "是滴,这里说的数组专用工具类指 ...

  4. java javascript数组_浅谈javascript和java中的数组

    javascript中的数组 数组的创建 直接创建方式  var str = ['java', 'js']; 使用new创建方式: var a = new Array(10);  //  定义长度为1 ...

  5. Java数组– java.util.Arrays

    Java Arrays class consists exclusively of static methods that operates on array. Java Arrays类仅由对数组进行 ...

  6. java找不到符号 类_这是报的错误 java: 找不到符号 符号: 类 copyOf 位置: 类 java.util.Arrays...

    import java.util.Arrays; import java.util.Random; public class MinArray { public static void main(St ...

  7. java中将txt转换为数组_关于android:在Java中将列表转换为数组

    本问题已经有最佳答案,请猛点这里访问. 在Java中,如何将EDCOX1的0度转换为EDCOX1×1? 检查以下代码: ArrayList tiendas; List tiendasList; tie ...

  8. js 如何将java list集合转换成var类型数组_零基础参加郑州Java培训 一定要注意Arrays.asList的用法...

    作为编程界的老大哥,Java一直是想要加入互联网行业的人的首选.为了能够更快更好地入行,很多零基础学员选择参加郑州Java培训班,跟着老师的脚步由浅入深的学习专业技术.今天千锋郑州小编就给大家分享使用 ...

  9. 封装时间转换工具类_推荐一款封装各种Util工具类,这款神仙级框架你值得拥有!...

    点击上方 "Java指南者"关注, 星标或置顶一起成长 免费送 1024GB 精品学习资源 来源:ryanc.cc/archives/hutool-java-tools-lib 简 ...

  10. java Array 需要包_我编写的程序提示没有Arrays类,导入不了java.util.Arrays包,附程序。...

    package com.imooc.collection; import java.util.ArrayList; import java.util.List; /* * *  备选课程类 */ pu ...

最新文章

  1. python书籍_python书籍
  2. java生成0~9个9个不相等的整数
  3. Oracle优化12-10053事件
  4. 在ubuntu系统中删除软件的三种最佳方法
  5. LeetCode 629. K个逆序对数组(DP)
  6. linux烧录文件的格式,制作emmc 烧录文件
  7. 全新威马E.5将于4月15日上市
  8. 快闪族 - 百度百科
  9. 【云周刊】第148期:“盲人摸象、感而不动、雾里看花”,阿里闵万里谈城市大脑三大挑战...
  10. 华三OSPF多区域配置实例
  11. 计算机中如何隐私保护,隐私保护!我们的电脑该怎么设置开机密码呢?
  12. 关于UC全民阅读的报告及带来的启发
  13. 整数转罗马数字(C++)
  14. Spring boot整合Redis(入门教程)
  15. js如何动态获取object类型里的键值
  16. 天语W700 adb驱动解决
  17. psu计算机测试,「电脑维修」电源的检测(使用电源测试器)
  18. 汇编中的通用基础寄存器ax,bx,cx,dx等的含意及作用解释
  19. 这45个小技巧,帮你写出一手同事都羡慕的漂亮代码!
  20. 2009年9月最新台式电脑配置单(1)

热门文章

  1. poj 2559 Largest Rectangle in a Histogram dp!!!
  2. 苹果mac专业音频处理软件:Audition
  3. web本地开发环境集成工具:​​​​MAMP Pro
  4. iOS开发之开源项目链接
  5. iOS开发之NSString和UTF-8间的转换
  6. 苹果mac误删文件怎样快速找回?
  7. 模组厂商对话 MTK:智能音箱市场谈红海还早,下一个爆品将诞生丨WARE 2018
  8. 转载一篇好用的ubuntu 16.04安装nvidia显卡驱动文章
  9. FCKEditor报java.lang.NullPointerException
  10. 图论/暴力 Codeforces Beta Round #94 (Div. 2 Only) B. Students and Shoelaces