黑马程序员技术交流社区
标题:
让技术飞,每日一题之数组练习
[打印本页]
作者:
钟林杰
时间:
2013-4-13 18:00
标题:
让技术飞,每日一题之数组练习
每日一题!
今天练习java语言的数组操作。
大家一起来试试吧,比比谁的代码更简洁更灵活和更高效!
题目:
编写java程序创建一个String类的二维数组String arr1[][] = {{"200"},{"250","50"},{"100","300","25"}}
和一个String类的一维数组arr2[],将数组arr1中大于50(>)的元素复制到arr2[]中,然后打印出arr2中的元素。
再将arr2中最小的数替换为"min",最大的数替换为"max",最后打印出arr2中的元素。
结果为:300 100 250 200
max min 250 200
注意:分配arr2数组的空间必须是灵活的,而不是固定的输入一个数字分配。
例如固定分配:String arry2[] = new String[4];
(提交了你的答案之后才能看到我的答案哦,不要为了看答案而回复!)
[hide=d100]
class ArrayTest
{
public static void main(String args[])
{
String arr1[][] = {{"200"},{"250","50"},{"100","300","25"}}; //建立二维数组arr1[][]
int count = 0; //定义一个变量count为了给arr2[]分配内存
for(String arr[]:arr1) //利用foreach遍历数组中大于50的数,并用count记录长度
{
for(String s:arr)
{
if(new Integer(s)>50)
count++;
}
}
String arr2[] = new String[count--]; //创建一维数组arr2
for(int i=0;i<arr1.length;i++) //用for循环遍历数组
{
for(int j=0;j<arr1
.length;j++)
{
if(new Integer(arr1
[j])>50) //判断数组中的元素是否大于50
{
arr2[count--] = arr1
[j]; //将数组中大于50的元素复制给数组arr2
}
}
}
int max = 0,min = 0; //定义两个整型变量记录arr2中最大和最小的值的角标
for(int i=0;i<arr2.length;i++)
{
if(!(new Integer(arr2[max])>new Integer(arr2
)))
{
max = i;
}
if(!(new Integer(arr2[min])<new Integer(arr2
)))
{
min = i;
}
}
for(int i=0;i<arr2.length;i++) //打印原来的arr2
System.out.print(arr2
+"\t");
arr2[max] = "max"; //把"max"替换最大值
arr2[min] = "min"; //把“min”替换最小值
System.out.println();
for(int i=0;i<arr2.length;i++) //打印修改后的arr2
System.out.print(arr2
+"\t");
}
}[/hide]
作者:
李尧
时间:
2013-4-13 19:47
不会..我这代码我自己看了都蛋疼...
class Test
{
public static void main(String[] args)
{
String arr1[][] = {{"200"},{"250","50"},{"100","300","25"}};
Set<String> set=new TreeSet<String>();
for (int x=0;x<arr1.length;x++)
{
for(int y=0;y<arr1[x].length;y++)
{
int num=Integer.parseInt(arr1[x][y]);
if(num>50)
{
set.add(arr1[x][y]);
}
}
}
System.out.println(set);
String[] arr2= set.toArray(new String[0]);
arr2[0]="min";
arr2[arr2.length-1]="max";
printArr(arr2);
}
public static void printArr(Object[] arr)
{
for(int x=0;x<arr.length;x++)
{
if (x==0)
System.out.print("["+arr[x]+",");
else if (x==arr.length-1)
System.out.println(arr[x]+"]");
else
System.out.print(arr[x]+",");
}
}
}
复制代码
作者:
钟林杰
时间:
2013-4-13 20:44
李尧 发表于 2013-4-13 19:47
不会..我这代码我自己看了都蛋疼...
你怎么用了集合了,这是数组的练习。:L
作者:
李尧
时间:
2013-4-13 20:49
钟林杰 发表于 2013-4-13 20:44
你怎么用了集合了,这是数组的练习。
懒呗..直接toArray了..突然发现我智商不够用了..
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2