排列:它可以被看作是多个相同类型的数据的组合,这些数据的统一管理。

1.声明、 创建

一维:type[]  var  比如:int[] a或 int a[];

数组名= new  数组元素的类型[数组元素的个数]

public class TestNew
{
public static void main(String args[]) {
int[] s ; //声明 或者int s[] 可是不可int s[5]
s = new int[5] ; //创建 new
for(i = 0 ; i < 5 ; i++) {
s[i] = i ;
}
}
}

2初始化

静态初始化:在定义数组的同一时候就为数组元素分配空间并赋值。

动态初始化:数组定义和数组元素分配空间和赋值分开操作。

默认初始化:数组是引用类型,元素相当于成员变量。因此数组在分配空间后,系统默认给每一个元素进行了隐式初始化。

public class Test
{
public static void main(String args[]) {
//动态初始化
int a[] ;
a = new int[22] ;
a[0] = 0 ;
a[1] = 1 ;
Date days[] ;
days = new Date[2] ;
days[0] = new Date(2015,6,1) ;
days[1] = new Date(2012,5,5) ; //静态初始化
int a[] = {0,1} ;
Date days[]= {new Date(2015,6,1),new Date(2012,5,5} //默认初始化
int a[] = new int [2] ;
Date days[] = new Date[2]
//输出结果。基本类型默觉得0应用类型默觉得null
System.out.println(a[1]+" "+Date[1]) ;
}
} class Date
{
int year,month,day ;
Date(int year ,int month ,int day) {
this.year = year ;
this.month = month ;
this.day = day ;
}
}

3.数组拷贝

java的lang包中封装了arraycopy方法能够实现数组的拷贝

public static void arraycopy(Object s,int sbeginPos,Object scopy,int scopybeginPos,int slength )           

s:源数组 
、 sbeginPos:源数组開始位置 

        scopy:目标数组  、 scopybeginPos:目标数组開始放置位置 


        slength:要拷贝源数组的长度

样例例如以下:

public class Array{

	//拷贝数组,
public static void main(String[] args){
//1.元素为基本类型的,目标数组和源数组的元素独立,不相互影响
String[] s ={"IBM","Oracle","Apple"};
String[] sBak = new String[6]; //1.1从源数组s s[1]開始拷贝元素到目标数组sBak中从sBak[2]開始存放的拷贝进来的元素,拷贝的个数为s.length-1个
System.arraycopy(s,1,sBak,2,s.length-1); for(int i=0;i<sBak.length;i++){
System.out.print(sBak[i]+" ");
}
//1.2改动目标数组一个元素值
sBak[2]="tihuan";
//1.2.1目标数组值改变
System.out.print("\n");
for(int i=0;i<sBak.length;i++){
System.out.print(sBak[i]+" ");
}
//1.2.2源数组值不变
System.out.print("\n");
for(int i=0;i<s.length;i++){
System.out.print(s[i]+" ");
} //2.元素为引用类型的,拷贝的是数组的引用,对随意数组元素的改动都会影响其它数组。
System.out.println();
int[][] intArray ={{1,2},{1,2,3},{3,4}};
int[][] intArrayBak = new int[3][]; System.arraycopy(intArray,0,intArrayBak,0,intArray.length);
//2.1改动目标数组的一个元素值
intArrayBak[2][1] = 100;
//2.2打印源数组看值是否发生变化
for(int i=0;i<intArray.length;i++){
for(int j=0;j<intArray[i].length;j++){
System.out.print(intArray[i][j]+" ");
} System.out.println();
}
}
}

结果显示为:

数组属引用类型,同一时候数组能够看成对象,数组中的每一个元素相当于该对对象的变量成员。

作用声明数组的时候在栈内存中分配数组名的存储空间。创建的时候分配的存储空间阵列堆栈内容。

版权声明:在这篇文章中的不可避免的缺点,敬请各位批评,留下评论。

java排列的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。

    最近在看算法,看到这个题,觉得挺经典的,收起. 分析: 1 .把问题归结为图结构的遍历问题.实际上6个数字就是六个结点,把六个结点连接成无向连通图,对于每一个结点求这个图形的遍历路径,所有结点的遍历路 ...

  3. 字符串数组元素排列与组合的Java递归实现

      我们在笔试面试过程中经常会遇到关于排列与组合的问题,其实这些可以通过递归简单的实现,看下面两个例子: (1)关于字符串排列的问题 输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串ab ...

  4. Java字符串排列算法

    Java字符串排列算法 题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式? 比如:取1个球可以构成的组合有 A B C D E 共5种,取2个球可以构成的组 ...

  5. 排列的Java递归语言实现

    在做算法题的时候,发现排列经常被使用到,是一个重要的知识点, 下面是博主修改过的代码,初学者,如有不足,欢迎指出 import java.util.ArrayList; import java.uti ...

  6. java 集合中将元素倒序排列

    方法一:实现Comparable接口排序package collsort.comparable; package com.cvicse.sort.comparable; public class Ca ...

  7. 【剑指offer28:字符串的排列】【java】

    题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. import ja ...

  8. Java利用递归算法统计1-6的数组排列组合数

    Java利用递归算法统计1-6的数组排列组合数 1.设计源码 /** * @Title:ArrayCombination.java * @Package:com.you.data * @Descrip ...

  9. Java 使用Arrays.sort排序 从大到小排列

    前言 一般情况,我们在Java中给数组排序,比起自己写个冒泡排序,更加喜欢使用Java中自带的sort方法,也就是Arrays.sort方法 但是,这个方法只会将数组从小到大排列,如果我们需要从大到小 ...

随机推荐

  1. Java的IO以及线程练习

    文件的IO操作: 字节流: 输入字节流:  InputStream 所有输入字节流的基类,抽象类.  FileInputStream 读取文件的输入字节流.  BufferedInputStream ...

  2. uva11624 - Fire!

    uva11624 - Fire! 火在蔓延,人在走.火会蔓延,不会熄灭,我们可以确定某个点着火的时间(广搜).对于J来说,要是他走到某点的时间比火蔓延到该点的时间要短,那么他走到该点的时候,火还没蔓延 ...

  3. Vijos1051. 送给圣诞夜的极光

    试题请參见: https://vijos.org/p/1051 题目概述 圣诞老人回到了北极圣诞区, 已经快到12点了. 也就是说极光表演要開始了. 这里的极光不是极地特有的自然极光景象. 而是圣诞老 ...

  4. ASP.NET中时间的绑定和格式化

    1.Eval和Bind的区别  绑定表达式  <%# Eval("字段名") %>  <%# Bind("字段名") %> 区别 1.e ...

  5. 从 mysql 客户端导出数据库 mysqldump

    window+r 打开cmd 输入 mysqldump -u mysql用户名 -p 数据库名 >  要导出的位置  (注意,最后没有分号) 然后输入密码即可 ^_^

  6. java final 和instanceof 关键字

    /* final class A { public final void eat(){ System.out.println("测试"); } } */ class A { } c ...

  7. 原来真的不会用指针[*p++]

    Describe: 有2字节字符数据,需要转换成2字节的短整型,字符数据低字节在前. Analyse: 其实就是取一下数据,移位再或一下就好了,大伙都这样想的. Ex1: 假设tmp1就是短整型,p指 ...

  8. flex 调用WebService2(基于.net)

    flex 访问WebService的方法有很多种,使用FLEX4中的"数据/服务"功能可以自动生成访问WebService的代理类,这样可以避免把所有的数据访问都写到MXML页面上 ...

  9. Funsion Charts 学习(一)

    学习官网: http://www.fusioncharts.com/explore/line-area-charts/ 参数: numvdivlines      number     垂直线显示vd ...

  10. tomcat7.0的源码下载

    如果想知道servlet的HttpServlet的实现细节,想知道jsp的org.apache.jasper.runtime.HttpJspBase的实现细节,想知道tomcat关于servlet和j ...