java里数组怎么定义,Java数组怎么定义

  java里数组怎么定义,Java数组怎么定义

  本文已经给大家带来了一些关于java的知识,包括数组的定义和使用,包括main方法中的String数组,数组中存储的引用数据类型,数组的扩展和复制等。下面就来看看吧,希望对你有帮助。

  如何解决写爬虫IP受阻的问题?立即使用。

  

一维数组

  包com . bjpower node . javase . array;

  公共类ArrayTest01 {

  公共静态void main(String[] args) {

  //1.静态初始化

  int[] a1={1,3,5,7,9 };

  //所有数组对象都有length属性,而不是方法!

  System.out.println(数组元素个数为: a1 . length );

  //取第一个元素

  system . out . println(a1[0]);

  //取最后一个元素

  system . out . println(a1[a1 . length-1]);

  //更改数据

  a1[a1 . length-1]=0;

  //遍历数据

  for(int I=0;i a1 .长度;i ){

  system . out . println(a1[I]);

  }

  //数据下标越界,例如用下面的6访问数据元素。

  //system . out . println(a1[6]);//ArrayIndexOutOfBoundsException

  //2.动态初始化

  int[]a2=new int[5];//默认值为0

  for(int I=0;i a2 .长度;i ){

  system . out . println(a2[I]);

  }

  //初始化Object类型的数组,

  //1.采用静态初始化模式。

  Object O1=new Object();

  Object O2=new Object();

  Object O3=new Object();

  Object[] object={o1,o2,O3 };

  //以上等价于:object [] object={newobject(),newobject(),new object()};

  for(int I=0;io object . length;i ){

  system . out . println(object[I]);//默认情况下调用toString方法

  }

  //2.采用动态初始化。

  Object[] obj=新对象[3];

  for(int I=0;iobj.lengthi ){

  system . out . println(obj[I]);//空空空

  }

  //初始化字符串类型的数组

  //1.静态初始化

  String[] str1={abc , bcd , CDE };

  for(int I=0;i str1 .长度;i ) {

  system . out . println(str 1[I]);

  }

  //2.动态初始化

  String[] str2=新字符串[3];

  for(int I=0;I str 2 . length;i ) {

  system . out . println(str 2[I]);

  }

  }

  }动态存储内存图

  

  

方法的参数是数组

  例1:

  包com . bjpower node . javase . array;

  公共类数组测试02 {

  //也可以用C的风格,写成String args[]

  公共静态void main(String args[]) {

  system . out . println( hello world );

  //1.参数传递方法的数组-静态初始化模式

  int[] a={1,2,3,4,5 };

  print array(a);

  //2.方法的参数传递数组-动态初始化模式

  int[]arr=new int[5];

  打印数组(arr);

  //直接一步完成

  print array(new int[3]);

  }

  //打印的静态方法

  public static void print array(int[]arr){

  for(int I=0;长度;i ) {

  system . out . println(arr[I]);

  }

  }

  }例2:(掌握)

  包com . bjpower node . javase . array;

  公共类数组测试03 {

  公共静态void main(String[] args) {

  //- 1.动态初始化一位数组(两种传递参数的方式)

  //第一个参数传递方法

  int[]a1=new int[5];//默认为50。

  print array(a1);

  system . out . println(-);

  //第二个参数传递方法

  print array(new int[3]);

  system . out . println(-);

  //- 2.一位数组的静态初始化(传递参数的两种方式)

  //第一个参数传递方法

  int[] a2={1,2,3 };

  print array(a2);

  system . out . println(-);

  //第二个参数传递方法——直接传递静态数组

  printArray(new int[]{4,5,6 });

  }

  //静态方法调用——静态方法更方便,不需要新的对象。

  public static void print array(int[]arr){

  for(int I=0;长度;i ) {

  system . out . println(arr[I]);

  }

  }

  }

  

main方法中的String数组

  例1:

  包com . bjpower node . javase . array;

  公共类数组测试04 {

  //这个方法是程序员写的,JVM调用的。当调用JVM时,它必须传递一个字符串数组。

  公共静态void main(String[] args) {

  JVM默认传递的这个数组对象的长度?默认值为0。

  //通过测试:args不为null。

  System.out.println(JVM给传递的字符串数组参数,这个数组的长度是多少?

  args . length);//0

  //下面一行代码表示意思:创建了数组对象,但是数组中没有数据。相当于:

  String[] strs=新字符串[0];//以动态的方式

  //String[]strs={ };//静态初始化数组。里面什么都没有。

  打印长度(strs);//调用printLength静态方法

  /*

  因为传递的“String[] args”数组中没有任何内容;那么这个数组什么时候会有值呢?

  实际上,这个数组是为用户保留的。用户可以在控制台上输入参数,这个参数会自动转换成“String[] args”

  比如这样运行程序:java ArrayTest04 abc def xyz;相当于在编译时传递参数。

  此时JVM会自动用空格分隔“abc def xyz”,分隔完成后会自动放入“String[] args”数组中。

  所以main方法上面的String[] args数组主要用来接收用户输入的参数。

  将abc def xyz转换为字符串数组:{abc , def , xyz}

  */

  //遍历数组

  for(int I=0;I参数. length;i ) {

  system . out . println(args[I]);

  }

  //既然参数是在编译时传递的,那么如何运用编译运行的思想呢?

  //运行-编辑配置-程序参数,然后从后面重新运行。

  }

  public static void printLength(String[]args){

  system . out . println(args . length);//0

  }

  }例2:

  包com . bjpower node . javase . array;

  /*

  模拟一个系统。假设要使用这个系统,您必须输入用户名和密码。

  */

  公共类数组测试05 {

  公共静态void main(String[] args) {

  //先判断长度,是否是两个字符串的长度,不是2直接终止程序。

  if(args.length!=2){

  System.out.println(请输入您的用户名和密码);

  返回;

  }

  //取出用户名和密码

  string username=args[0];

  string password=args[1];

  //假设用户名为admin,密码为123,登录成功。其他的都失败了。

  //判断两个字符串是否相等,需要使用equals方法。

  //if(username . equals( admin )password . equals( 123 ){//有可能是空指针异常。

  //下面的写法也可以避免空指针的异常!

  if(admin )。等于(用户名)“123”。等于(密码)){

  System.out.println(恭喜您,登录成功);

  System.out.println(您可以继续使用此系统);

  }否则{

  System.out.println(账号或密码错误,请重新输入);

  }

  }

  }

  

数组中存储引用数据类型(重点)

  包com . bjpower node . javase . array;

  公共类数组测试06 {

  公共静态void main(String[] args) {

  //1.静态创建一个动物类型数组

  动物a1=新动物();

  动物a2=新动物();

  Animal[] animals={a1,a2 };

  //遍历动物数组

  for(int I=0;一、动物.长度;i ) {

  //方法1

  /* Animal a=animals[I];

  a . move();*/

  //方法2

  动物[我]。move();

  }

  //2.动态初始化长度为2的动物类型数组

  Animal[] ans=新动物[2];

  ans[0]=新动物();

  //ans[1]=新产品();//呃,产品与动物无关。

  //动物数组中只能存放动物类型,不能存放产品类型

  //3.动物数组中可以存放猫类型的数据,因为猫是动物一个子类

  ans[1]=new Cat();

  for(int j=0;詹斯长度;j ) {

  ans[j].move();

  }

  //4.创建一个动物类型的数据,数组当中存储猫和伯德

  //4.1静态创建

  Cat Cat=new Cat();

  鸟鸟=新鸟();

  动物[]anim={猫,鸟};

  for(int I=0;我动画长度;i ) {

  //直接调用子类和父类都有的移动()方法

  //anim[i].move();

  //这里想要调用子类伯德里面特有的方法,需要向下转型

  如果(鸟的动画实例){

  Bird b=(Bird)anim[I];//向下转型

  乙。move();

  乙。sing();//调用子类特有的方法

  }否则{

  动画,动画.move();

  }

  }

  }

  }

  //动物类

  动物类{

  公共空的移动(){

  System.out.println(动物移动.);

  }

  }

  //商品类

  类别产品{

  }

  //有一个猫类继承动物类

  类别猫扩展动物{

  公共空的移动(){

  System.out.println(Cat move . );

  }

  }

  //有一个鸟类继承动物类

  类鸟延伸动物{

  公共空的移动(){

  System.out.println(Bird move .);

  }

  //鸟特有的方法

  public void sing(){

  System.out.println(鸟儿在歌唱!);

  }

  }

数组扩容和拷贝

  包com。bjpower节点。贾瓦斯。数组;

  公共类数组测试07 {

  公共静态void main(String[] args) {

  //java中的数组是怎样拷贝的呢?System.arraycopy(5个参数)

  //System.arraycopy(源,下标,目的地,下标,个数)

  //拷贝源-把3、5、7拷贝过去

  int[] src={1,3,5,7,9 };

  //拷贝目的地-拷贝到下标为5的地方

  int[]dest=new int[20];

  //调用拷贝函数

  System.arraycopy(src,1,dest,5,3);

  //打印验证

  for(int I=0;我想。长度;i ) {

  系统。出去。println(dest[I] );

  }

  //拷贝引用数据类型

  String[] str={hello , world };

  String[] strs=新字符串[10];

  System.arraycopy(str,0,strs,3,2);

  for(int I=0;我赞成。长度;i ) {

  系统。出去。println(strs[I]);

  }

  系统。出去。println(-);

  //采用动态开辟的时候拷贝的是地址

  Object[] objs={new Object(),new Object(),new Object()};

  对象[]对象=新对象[5];

  System.arraycopy(objs,0,objects,0,3);

  for(int I=0;i objects.lengthi ) {

  系统。出去。println(objects[I]);

  }

  }

  }内存图

  推荐学习: 《java视频教程》 以上就是一起聊聊爪哇中数组的定义和使用的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: