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方法 但是,这个方法只会将数组从小到大排列,如果我们需要从大到小 ...
随机推荐
- CI分支kohana在线文档
http://www.luzhongpeng.com/guide/kohana/mvc/controllers http://www.lampblog.net/kohana3%E4%BD%BF%E7% ...
- HTTP协议1之协议详解--转
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...
- iOS textfield限制长度,中文占2字符,英文占1字符
之前遇到一种情况,限制textfield长度,并且要适配多语言,做到,例如中文占2字符,英文占1字符,还有考虑其他语言,网上找了很多方法,不太合适,最后结合网上的方案,修改出了还比较适用. 首先,增加 ...
- Sql server Lock
http://www.cnblogs.com/wuyifu/archive/2013/11/28/3447870.html
- log4j参数说明
log4j.properties 使用 一.参数意义说明 输出级别的种类 ERROR.WARN.INFO.DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session ...
- codeforces 22C System Administrator(构造水题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud System Administrator Bob got a job as a s ...
- Direct2D 几何图形绘制基础
之前说过,D2D主要为了绘制有三种类型的数据:几何图形,图片,文字.这几种对象也叫做资源,资源就是要D2D流水线中要被加工的对象. 几何图形包括: 简单几何图形 直线,DrawLine,由起点和终点构 ...
- navicat导入mysql数据库sql时报错
今天运维的一个项目需要进入数据库修改下数据,MYSQL的数据库,我先导出了一份数据结构和数据,然后进行修改,改完后发现项目报错了...粗心大意哪改错了,赶紧恢复数据库,结果导入SQL时报错了,当时心凉 ...
- 简易的WPF MVVM模式开发
Model层 public class Song { private string _artistName; private string _songTitle; public string Song ...
- 一级域名301重定向到www二级域名
301重定向有利于百度的搜索 例如一个域名 www.test.com如果不做设置会产生4个网址, (1)test.com(2)www.test.com(3)test.com/default.html( ...