黑马程序员技术交流社区
标题:
数组的问题
[打印本页]
作者:
净坛使者
时间:
2014-1-2 22:45
标题:
数组的问题
各位大神,请问nt[] arr = {3,2,1,6,5,4};如何使用一个变量,就能是数组内的所有成员进行前后的调换
作者:
伍艳雄
时间:
2014-1-2 23:54
class Demo {
public static void main(String[] args) {
int[] arr = {3,2,1,6,5,4};
printArray(arr);
System.out.println();
revArray(arr);
printArray(arr);
}
public static void revArray(int[] arr) {
for (int x = 0;x < arr.length / 2 ;x++ ) {
int temp = arr[x];
arr[x] = arr[arr.length - 1 - x];
arr[arr.length - 1 - x] = temp;
}
}
public static void printArray(int[] arr) {
for ( int x =0;x<arr.length ; x++) {
System.out.print(arr[x]+",");
}
}
}
复制代码
作者:
午夜b'Boy
时间:
2014-1-3 18:32
new 一个新数组长度等于arr.length; arr数组从尾到头遍历的同时,顺序复制到新数组中
作者:
快乐的黑马
时间:
2014-1-3 20:44
同学你好,可以在for循环中定义一个int temp变量,通过比较角标前后的大小进行互换。
作者:
苏小惠
时间:
2014-1-3 22:05
class Array
{
public static void main(String[] args)
{
int[] arr = {3,2,1,6,5,4};
//1.将数组反转
reverseArr(arr);
//2.打印数组
printArray(arr);
}
//2.将数组反转
public static void reverseArr(int[] arr)
{
//1.将0 和 arr.length_1 的角标,0++,(arr.length-1)--角标的数值依次进行对换
//直到start >= end时,停止交换
for(int start = 0,end = arr.length-1;start > end; start++,end--)
{
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
//3.打印数组
public static void printArray(int[] arr)
{
for(int i = 0; i < arr.length; i++)
{
System.out.print(arr[i]+" ");
}
}
}
作者:
李兴
时间:
2014-1-4 14:15
代码为
class DemoA {
public static void main(String[] args) {
/*原理为
* a=a+b; b=a-b;a=a-b;
* */
int[] arr = {3,2,1,6,5,4};
for (int x = 0;x < arr.length / 2 ;x++ ) {
arr[x] = arr[x] + arr[arr.length-x-1];
arr[arr.length-x-1] = arr[x] - arr[arr.length-x-1];
arr[x] = arr[x] - arr[arr.length-x-1];
}
for ( int x =0;x<arr.length ; x++) {
System.out.println(arr[x]);
}
}
}
复制代码
求加分,谢谢
作者:
黑马IT学员
时间:
2014-1-4 16:59
将数组进行倒叙过来就可以了
作者:
肖银
时间:
2014-1-4 19:18
这是我的课堂作业,你可以参考一下,各位帮优化.
class arrbianlifanzhuan {
public static void main(String[] args) {
int[] arr = {1,13,14,21,2,3,5,3,45,6,67,54,6,7,87,4,54,4,34,6,64,6};
System.out.println(toArr(arr));
System.out.println("==================================================");
reverse(arr);//调用倒序方法
System.out.println(toArr(arr));
}
//打印字符串方法
static String toArr(int[] arr) {
String temp = "[";//字符串前加上中括号
for (int i = 0;i < arr.length ;i++ )
{
if (i != arr.length - 1)//判断,不是最大索引,就在后面加上逗号
{
temp = temp + arr[i] + ",";
}
else
{
temp = temp + arr[i] + "]";//判断,如果是最后一个字符串,则加上左中括号
}
}
return temp;
}
//字符串反转的方法
public static void reverse(int[] arr) {
//折半转换,循环定义最小数组指标和最大数组指标,如果最小指标小于最大指标
//则最小指标加1,最大指标减1.
for (int start = 0,end = arr.length-1;start < end ; start ++ , end --)
{
tojiaohuan(arr,start,end);
}
}
//交换两个数组空间的值
public static void tojiaohuan (int[] arr ,int i,int j)
{
int temp = arr[i];//定义临时变量,放入参数i的值
arr[i] = arr[j];//把参数j的值赋给i
arr[j] = temp;//把临时变量的值赋给j
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2