java排列
排列:它可以被看作是多个相同类型的数据的组合,这些数据的统一管理。
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排列的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
最近在看算法,看到这个题,觉得挺经典的,收起. 分析: 1 .把问题归结为图结构的遍历问题.实际上6个数字就是六个结点,把六个结点连接成无向连通图,对于每一个结点求这个图形的遍历路径,所有结点的遍历路 ...
- 字符串数组元素排列与组合的Java递归实现
我们在笔试面试过程中经常会遇到关于排列与组合的问题,其实这些可以通过递归简单的实现,看下面两个例子: (1)关于字符串排列的问题 输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串ab ...
- Java字符串排列算法
Java字符串排列算法 题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式? 比如:取1个球可以构成的组合有 A B C D E 共5种,取2个球可以构成的组 ...
- 排列的Java递归语言实现
在做算法题的时候,发现排列经常被使用到,是一个重要的知识点, 下面是博主修改过的代码,初学者,如有不足,欢迎指出 import java.util.ArrayList; import java.uti ...
- java 集合中将元素倒序排列
方法一:实现Comparable接口排序package collsort.comparable; package com.cvicse.sort.comparable; public class Ca ...
- 【剑指offer28:字符串的排列】【java】
题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. import ja ...
- Java利用递归算法统计1-6的数组排列组合数
Java利用递归算法统计1-6的数组排列组合数 1.设计源码 /** * @Title:ArrayCombination.java * @Package:com.you.data * @Descrip ...
- Java 使用Arrays.sort排序 从大到小排列
前言 一般情况,我们在Java中给数组排序,比起自己写个冒泡排序,更加喜欢使用Java中自带的sort方法,也就是Arrays.sort方法 但是,这个方法只会将数组从小到大排列,如果我们需要从大到小 ...
随机推荐
- Java的IO以及线程练习
文件的IO操作: 字节流: 输入字节流: InputStream 所有输入字节流的基类,抽象类. FileInputStream 读取文件的输入字节流. BufferedInputStream ...
- uva11624 - Fire!
uva11624 - Fire! 火在蔓延,人在走.火会蔓延,不会熄灭,我们可以确定某个点着火的时间(广搜).对于J来说,要是他走到某点的时间比火蔓延到该点的时间要短,那么他走到该点的时候,火还没蔓延 ...
- Vijos1051. 送给圣诞夜的极光
试题请參见: https://vijos.org/p/1051 题目概述 圣诞老人回到了北极圣诞区, 已经快到12点了. 也就是说极光表演要開始了. 这里的极光不是极地特有的自然极光景象. 而是圣诞老 ...
- ASP.NET中时间的绑定和格式化
1.Eval和Bind的区别 绑定表达式 <%# Eval("字段名") %> <%# Bind("字段名") %> 区别 1.e ...
- 从 mysql 客户端导出数据库 mysqldump
window+r 打开cmd 输入 mysqldump -u mysql用户名 -p 数据库名 > 要导出的位置 (注意,最后没有分号) 然后输入密码即可 ^_^
- java final 和instanceof 关键字
/* final class A { public final void eat(){ System.out.println("测试"); } } */ class A { } c ...
- 原来真的不会用指针[*p++]
Describe: 有2字节字符数据,需要转换成2字节的短整型,字符数据低字节在前. Analyse: 其实就是取一下数据,移位再或一下就好了,大伙都这样想的. Ex1: 假设tmp1就是短整型,p指 ...
- flex 调用WebService2(基于.net)
flex 访问WebService的方法有很多种,使用FLEX4中的"数据/服务"功能可以自动生成访问WebService的代理类,这样可以避免把所有的数据访问都写到MXML页面上 ...
- Funsion Charts 学习(一)
学习官网: http://www.fusioncharts.com/explore/line-area-charts/ 参数: numvdivlines number 垂直线显示vd ...
- tomcat7.0的源码下载
如果想知道servlet的HttpServlet的实现细节,想知道jsp的org.apache.jasper.runtime.HttpJspBase的实现细节,想知道tomcat关于servlet和j ...