java的知识点17——java.util.Arrays类、多维数组
java.util.Arrays类
Arrays类包含了:排序、查找、填充、打印内容等常见的操作。
打印数组
package cn.dym08;
import java.util.Arrays;public class Test01 {public static void main(String [] args) {int []a= {1,2};System.out.println(a); //打印数组引用的值System.out.println(Arrays.toString(a)); //打印数组元素的值}
}
此处的Arrays.toString()方法是Arrays类的静态方法,不是前面讲的Object的toString()方法。
数组元素的排序
package cn.dym08;
import java.util.Arrays;
public class Test02 {public static void main(String[] args) {int []a= {1,2,323,23,541,287,9,42};System.out.println(Arrays.toString(a));Arrays.sort(a);System.out.println(Arrays.toString(a));}
}
数组元素是引用类型的排序(Comparable接口的应用)
package cn.dym08;
import java.util.Arrays;
class Man implements Comparable{int age;int id;String name;public Man(int age, String name) {super();this.age = age;this.name = name;}public String toString() {return this.name;}public int compareTo(Object o) {Man man=(Man)o;if(this.age<man.age) {return -1;}if(this.age>man.age) {return 1;}return 0;}
}
public class Test03 {public static void main(String []args) {Man[] msMans= {new Man(3,"a"),new Man(60,"b"),new Man(2,"c")};Arrays.sort(msMans);System.out.println(Arrays.toString(msMans));}
}
二分法查找
package cn.dym08;
import java.util.Arrays;
public class Test04 {public static void main(String[] args) {int []a= {1,2,354,154,1145,54,78,45};System.out.println(Arrays.toString(a));Arrays.sort(a); //使用二分法查找,必须先对数组进行排序System.out.println(Arrays.toString(a));//Arrays.binarySearch(a, 12),返回排序后新的索引位置,若未找到则返回负数System.out.println("该元素的索引:"+Arrays.binarySearch(a, 12));System.out.println("该元素的索引:"+Arrays.binarySearch(a, 45));}
}
数组填充
package cn.dym08;import java.util.Arrays;public class Test05 {public static void main(String[] args) {int [] a= {1,45,48,98,487,145,2};System.out.println(Arrays.toString(a));Arrays.fill(a, 2,4,100); //将2到4索引对的元素的值替换为100//只取开始,不取结束System.out.println(Arrays.toString(a));}
}
多维数组
多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(一般使用容器,二维数组用的很少)
二维数组的声明
package cn.dym08;public class Test06 {public static void main(String[] args) {//Java中多维数组的声明和初始化应从低维到高维的顺序进行int [][] a=new int[3][];a[0]=new int[2];a[1]=new int[4];a[2]=new int[3];//int a1[][]=new int[][4] //非法}
}
二维数组的静态初始化
package cn.dym08;public class Test07 {public static void main(String[] args) {int [][]a= {{1,2,3},{3,4},{3,5,6,8}};System.out.println(a[2][3]);}
}
二维数组的动态初始化
package cn.dym08;
import java.util.Arrays;
public class Test08 {public static void main(String [] args) {int [][] a=new int[3][];//a[0]={1,2,5}; //错误,没有声明就初始化a[0]=new int[] {1,2};a[1]=new int[] {2,2};a[2]=new int[] {2,3,5,4};System.out.println(a[2][3]); //结果为:4System.out.println(Arrays.toString(a[0]));System.out.println(Arrays.toString(a[1]));System.out.println(Arrays.toString(a[2]));}
}
获取数组长度 属性 length
package cn.dym08;
import java.util.Arrays;
public class Test08 {public static void main(String [] args) {int [][] a=new int[3][];//a[0]={1,2,5}; //错误,没有声明就初始化a[0]=new int[] {1,2};a[1]=new int[] {2,2};a[2]=new int[] {2,3,5,4};//System.out.println(a[2][3]); //结果为:4//System.out.println(Arrays.toString(a[0]));//System.out.println(Arrays.toString(a[1]));//System.out.println(Arrays.toString(a[2]));System.out.println(a.length);System.out.println(a[0].length);}
}
java的知识点17——java.util.Arrays类、多维数组相关推荐
- java.util 1.8_JDK1.8源码(四)——java.util.Arrays 类
java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 1.asList public static ...
- Java的知识点22——时间处理相关类、Date时间类(java.util.Date)、DateFormat类和SimpleDateFormat类、Calendar日历类
时间处理相关类 用long类型的变量来表示时间,获得现在时刻的"时刻数值":long now = System.currentTimeMillis(); Date时间类(java. ...
- Java基础知识点__获取运行时类的完整结构
通过反射获取运行时类的完整结构 Field,method,Construuuctor,Superclass,Interface,Annotation 实现的全部接口 继承的父类 全部的构造器 全部的构 ...
- Java面试知识点(全)- Java面试基础部分一
Java面试知识点(全) :https://nanxiang.blog.csdn.net/article/details/130640392 Java基础 语法基础 面向对象 封装 利用抽象数据类型将 ...
- JAVA day16、17 数据结构(栈、队列、数组、链表、红黑树)
一.什么叫数据结构? 数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带"结构"的数据元素的集合."结构"就是指数据元素之间存在的关系,分为逻辑结构 ...
- Java面试知识点(全)- Java面试基础部分三
Java面试知识点(全)https://nanxiang.blog.csdn.net/article/details/130640392 注:随时更新 文章目录 ThreadPoolExecutor ...
- Java面试知识点之Java基础
1.面向对象的特性有哪些? 答:继承.封装.多态 封装 隐藏对象的属性和实现细节,对外提供接口访问. 继承 子类继承父类,保留父类的属性和方法,并可以进行扩展. 多态 不同的对象有相同的行为,但具体执 ...
- java全栈系列之JavaSE--java中的多维数组的详解026
多维数组 多维数组可以看成是数组的数组,二维数组是一个特殊的一维数组,其中的每一个元素都是一个一维数组 二维数组的定义格式: 定义一维数组的时候类型后面是一个[ ],而二维数组在类型后面跟上两个[ ] ...
- Java学习第二周(2)--排序算法与二维数组
声明:由于学习环境为JDK1.8,所有有关Java的代码均在JDK1.8环境中测试通过,若环境发生变换,代码可能会发生错误. 本周的学习难度较上周有明显提升,今天所学习的排序算法有很多需要理解 ...
最新文章
- 安装Maya 6.5指南
- iptables对请求的URL作IP访问控制
- 构建针对 iOS 和 Android 的原生扩展
- Spire.Doc 教程:用C#识别Word中的合并字段名称
- HttpClient, 使用C#操作Web
- nginx+tornado与nginx+go的性能测试
- 【今晚七点半】:多媒体开源PI
- Unity 3D观察者设计模式-C#委托和事件的运用
- 中国第一个发《Nature》的竟然是清朝人!被皇帝夸天下第一,他却觉得羞耻..........
- Tips--更改Jupyter Notebook的默认工作路径
- java junit
- 继承基础概念与公有继承
- 提高JQ效率的一些建议
- python线程池和多线程
- 单片机51keil编程流程
- SketchUp Pro 2018 for Mac(草图大师)免激活注册版
- 第2章 Spring Boot实践,开发社区登录模块(上)
- Java实验1:个人银行账户管理系统总结
- 假如有这样一种生活……
- C语言删除字符串的所有尾部空格
热门文章
- java设计模式简述
- 转自CSDNattilax的专栏 :自适应网页设计 跟 响应式 设计的区别跟原理and实践总结...
- DELL OME监控服务器安装配置
- 在visual studio中使用git版本系统(zz)
- NeatUpload的安装使用
- 委托的Invoke 和 BeginInvoke 与Control的Invoke和BeginInvoke(转-因为写得很好)
- 一个好用的开源在线时序图/波形图(Timing Diagram)绘制网站
- PMP考试资料:这个项目值得去做吗
- WIN7电脑文件莫名其妙被删除后的恢复
- C#对Excel的一些操作【一】