[19/03/12-星期二] 数组_遍历(for-each)&复制&java.util.Arrays类
一、遍历
for-each即增强for循环,是JDK1.5新增加的功能,专门用于读取数组或集合中所有的元素,即对数组进行遍历。
//数组遍历 for-each
public class Test_0312_01
{
public static void main(String[] args)
{
int arr[]=new int [5];
for(int i=0;i<arr.length;i++){ //常规遍历的方法
arr[i]=2*i+1;
}
for(int i=0;i<arr.length;i++){
System.out.printf("%-4d",arr[i]);
}
System.out.println();
//for-each循环 只能用于读取数组元素的值,不能修改元素的值 for(int temp:arr){ //前边是定义个整型的变量temp,没有下标,中间是冒号,后边数组的名字
System.out.printf("%-4d",temp); //注意后边写的是临时变量temp,不是数组arr
} System.out.println();
String arr2[]={"李白","ABC","@&"};
for(String temp:arr2){
System.out.printf("%-5s",temp);
} }
}
二、数组元素_复制&删除&增加
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---拷贝长度是多少)
//数组的复制拷贝与删除增加指定位置的元素
public class Test_0312_02
{
//复制一个数组到另一个数组 s:送进来的源数组 srcPots:源数组的起始位置 destPots:目标数组的起始位置 length:要复制的长度
public static void copyElement(String[] s, int srcPots,int destPots,int length){
String s1[]= new String[s.length]; System.arraycopy(s,srcPots,s1,destPots,length);//核心语句 for(int i=0;i<s1.length;i++)
System.out.printf("%-6s",s1[i]); System.out.println();
}
//从一个数组中删除一个元素 核心下标index+1覆index s:送进来的源数组 index:要删除元素的下标。源下标srcPlots=index
public static void deleteElement(String[] s,int index){//index=2 目标下标destPlots=index | 0 1 2 3 4 System.arraycopy(s,index+1,s,index,s.length-1-index);//核心语句 |a b c d e s[s.length-1]=null;// s.length=5 s.length-1=4(下标的上限) |删除后a b d e null for(int i=0;i<s.length;i++)
System.out.printf("%-6s",s[i]); System.out.println(); } //往一个数组中指定位置增加一个元素
public static void addElement(String[] s,int index,String temp){//index:要在下标为index的位置插入元素 String s2[]= new String[s.length+1]; //新建一个数组,且长度延长1 System.arraycopy(s,0,s2,0,index); // 把下标为index的元素前边的所有元素复制到s2数组,源数组和目标数组的下标均为0,长度为index(下标0到index-1有index个数) System.arraycopy(s,index,s2,index+1,s.length-index); //0 - (index-1) 共index个数字,总个数-前(index-1)个数=要移动长度 s2[index]=temp; //从index位置开始每个数字后移1位,最后一步把插入的新元素放在index位置 for(int i=0;i<s2.length;i++)
System.out.printf("%-6s",s2[i]); System.out.println(); } public static void main(String[] args) //主方法
{ String str[]={"a","b","c","d","e"}; System.out.printf("%-6d%-6d%-6d%-6d%-6d\n",0,1,2,3,4); for(String temp:str){ System.out.printf("%-6s",temp); }
System.out.println(); copyElement(str,1,2,3); //从源数组的下标为1的位置(开始位置)复制到目标数组下标为2的位置(开始位置),长度为3 deleteElement(str,2);//把下标为2的元素删除 String str2[]={"a","b","c","d","e"};//执行完上步以后会把"c"删除,故重新复制一遍原来的str数组 addElement(str2,2,"f");//在下标为2的位置上插入一个元素 /*String s2[]=new String[10]; System.arraycopy(s1,2,s2,6,3);//2:代表从s1的下标为2的地方开始复制(即从字符“c”处开始复制) 6:代表从s2下标为6的地方开始接受 for(String temp:s2) //for-each遍历的应用 3:代表复制长度为3
{
System.out.printf("%-6s",temp);
} */ }
}
三、java.util.Arrays类
JDK提供的java.util.Arrays类,包含了常用的数组操作(即自带各种方法),方便我们日常开发。Arrays类包含了:排序 ( Arrays.sort( a) )、查找( Arrays.binarySearch(a,2) )、
填充 (Arrays.fill(a, 1) 仅限一维,多维要用循环)、 打印内容(Arrays.toString(a)) 等常见的操作。【以数组a为例】
【代码示例】
import java.util.*; public class Test_0312_03
{
public static void main(String[] args)
{
int a[]={3,4,2,1}; int b[]=new int[5]; System.out.println(a);//会输出数组a的哈希地址 System.out.println(Arrays.toString(a)); //打印 会输出数组a中的内容,不同于Object中的toString() Arrays.sort(a); //排序 System.out.println(Arrays.toString(a)); System.out.println(Arrays.binarySearch(a,4)); //二分查找,使用前必须对它进行排序 若有这个数会输出这个数的下标,否则输出负数 System.out.println(Arrays.binarySearch(a,7)); Arrays.fill(b, 6);//填充,多用于赋初值 System.out.println(Arrays.toString(b)); }
}
[19/03/12-星期二] 数组_遍历(for-each)&复制&java.util.Arrays类的更多相关文章
- Java中数组操作 java.util.Arrays 类常用方法的使用
任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的 ...
- 要想数组用的 6,怎能不懂 java.util.Arrays
java.util.Arrays 类就是为数组而生的专用工具类,基本上常见的对数组的操作,Arrays 类都考虑到了,这让我由衷地觉得,是时候给该类的作者 Josh Bloch.Neal Gafter ...
- java数组、java.lang.String、java.util.Arrays、java.lang.Object的toString()方法和equals()方法详解
public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...
- java:数组操作工具类 java.util.Arrays包 主要方法详解
Arrays类位于Java.util包下,是一个对数组操作的工具类,现将Arrays类中的方法做一个总结(JDK版本:1.6.0_34).Arrays类中的方法可以分为八类: sort(对数组排序) ...
- Object、String、数组的 toString() 方法和 equals() 方法及java.util.Arrays
public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...
- Java 数组基础,java.util.Arrays
定义数组 方式1(推荐,更能表明数组类型) 方式2(同C语言) 方式3定义时直接初始化 数组运用基础 数组长度 equals() 数组元素不为基本数据类型时 二维数组 二维数组基础 变长的二维数组 j ...
- 遍历Map集合:java.util.Map.Entry、KeySet两种方式
遍历Map集合的两种方式: 1.用KeySet Map.keySet(),返回一个存放所有key的set集合,通过遍历集合,根据key值取出所有的value值. Map<String,Strin ...
- vue_v-for_遍历数组_遍历对象
1. v-for 遍历数组 html <div id="test"> <ul> <li v-for="(p, index) in perso ...
- 数组的三种方式总结 多维数组的遍历 Arrays类的常用方法总结
一.数组的三种声明方式总结 public class WhatEver { public static void main(String[] args) { //第一种 例: String[] tes ...
随机推荐
- ubuntu18.04 与 python
Ubuntu安装pycharm专业破解版方法 首先我们要下载pycharm的安装包, 地址为https://www.jetbrains.com/pycharm/download/#section=li ...
- Python编程:基础学习常见错误整理
# Python学习之错误整理: # 错误一:# TypeError: cannot concatenate 'str' and 'int' objects# 不能连接str和int对象age = 2 ...
- 【linux】dpkg 命令使用说明
dpkg是一个debian包管理工具.能够对包进行安装.卸载.获取信息等操作.用法: 安装(解包并配置): dpkg -i package_file dpkg --ins ...
- tomcat和应用集成
将tomcat作为应用的一部分集成到应用中,使得应用可以直接开启http服务,对外提供接口.此时应用程序不必再遵守j2ee中的文件目录格式要求. 此种方式改变了以往先部署tomcat容器,再按照j2e ...
- TCP/IP、Http、Soap三个基本的通讯协议
看到一个说法,比较通俗易懂: HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等.... SOAP就是你们之间交流的协议,负责把你所需要表达的意思写在信纸上,同时也负责 ...
- tomcat常用技巧
1. 修改Tomcat的名称 适用场景: 在测试服务器资源有限或是在本机服务器部署多套应用系统时,由于要启动多个TOMCAT服务,且TOMCAT服务没有用名称去区分,会造成维护使用上存在一定晨读的不方 ...
- 堆(Heap)的实现
这次实现了堆,这个堆不是指系统堆栈的堆,是一种数据结构,见下图 堆的本质就是一个数组(上图中,红色的是值,黑色的是下标)简单的来说就是把一个数组看成是二叉树,就像上图 大堆和小堆分别是指根节点比孩子节 ...
- echarts环形图点击旋转并高亮
通过计算某个扇形区域的值占整个圆的百分比来得到这个扇形的角度,从而根据startAngle这个属性来设定图形的开始渲染的角度,使点击某个扇形时圆环旋转使之始终对准某个点. 期间考虑到某扇形区域太小点击 ...
- 【HTML&CSS】文本的基本处理
其实在写这篇博客的时候已经学了很久,也写了不少代码,特别是很枯燥的看完整个html部分,因为不带有CSS写出来的东西干巴巴的一点也不好看. 直到展开CSS学习才开来补上博客,嗯,这是个好习惯. 这是运 ...
- FCKEditor编辑器添加中文字体的方法
默认情况下,FCKEditor在进行文本编辑时,无法使用中文字体.让其添加中文字体的方法: 1.打开 fckconfig.js 文件,找到第154行(大概),会发现: 程序代码: FCKConfig. ...