package 日期20210804;
import java.util.Arrays;
import java.util.Scanner;
import org.junit.Test;
public class C3 {
@Test
public void test1(){
/*
int[] arr = new int[4]; //创建动态数组
//数组元素赋值
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
System.out.println(arr[1]);
int[][] arr1 = {{1, 2}, {3, 4}, {5, 6}};//创建静态数组
System.out.println(arr1[1][0]);
*/
//创建静态数组
String[] cities={"北京","上海","杭州","深圳"};
//创建动态数组
String[] cityarr=new String[4];
//给数组元素赋值
cityarr[0]="北京";
cityarr[2]="杭州";
cityarr[3]="深圳";
//获取数组元素
System.out.println(cities[2]);
System.out.println(cityarr[3]);
int cnt=cities.length;//获取数组元素的个数
System.out.println("cities数组中保存的元素个数:"+cnt);
System.out.println();
for(int i=0; i<cityarr.length; i++){
System.out.println(cityarr[i]);
}
}
@Test
public void test2(){
//动态定义数组
//double[] salayArr = new double[6];
double[] salayArr = {0,0,0,0,0,0,0};
double totle = 0; //总工资
double avg = 0; //平均工资
for(int i=0; i<6; i++) {
System.out.print("请输入第"+(i+1)+"名员工的工资:");
double salay = new Scanner(System.in).nextDouble();
salayArr[i] = salay; //将输入的工资存到相应的数组元素中
}
for(int i=0; i<salayArr.length; i++) {
System.out.println("请输入第"+(i+1)+"名员工的工资:"+salayArr[i]);
totle = totle + salayArr[i]; // totle += salayArr[i]
}
avg = totle / salayArr.length; //通过数组的length属性获得数组元素的数量
System.out.println("总工资:"+totle);
System.out.println("平均工资:"+avg);
}
@Test
public void test3() {
int []arr = {56,34,78,2,0,18};
int sum = 0;
for(int i = 0;i<arr.length;i++){
System.out.println(arr[i]);
sum +=arr[i];
}
System.out.println(sum);
}
@Test
public void test4() {
System.out.println("请输入地名");
String[] cities = {"北京","上海","杭州","深圳"};
String name = new Scanner(System.in).next();
for(int i = 0;i < cities.length;i ++){
//System.out.println(cities[i]);
if(name.equals(cities[i])){
System.out.println("地名数据库中存在" + name);
}
}
System.out.println("完成");
}
@Test
public void test5(){
int[] arr = {58,34,78,2,1,18};
Arrays.sort(arr);//给数组元素排序,排序方法,顺序(从小到大)
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]+",");
}
System.out.println("最小值:"+arr[arr.length-6]);
System.out.println("最大值:"+arr[arr.length-1]);
}
@Test
public void test6(){
int[] arr = {58,34,78,2,1,18};
Arrays.sort(arr);//给数组元素排序,排序方法,顺序(从小到大)
for(int i=0;i<arr.length;i++){
System.out.println(arr[arr.length-i-1]+",");//从大到小输出
}
System.out.println("最小值:"+arr[arr.length-6]);
System.out.println("最大值:"+arr[arr.length-1]);
String s = Arrays.toString(arr);//将数组转换为字符串
System.out.println(s);
}
@Test
/**1.
输入10个个位整数,去掉重复数字,并由大到小排序
*/
public void test7(){
Scanner c = new Scanner(System.in);
int [] arr = new int [10];
for(int i=0;i<arr.length;i++){
System.out.print("请输入第"+(i+1)+"数字:");
arr[i] = c.nextInt();//将输入的成绩存到数组元素
}
Arrays.sort(arr);//从小到大排序
System.out.println(Arrays.toString(arr));
System.out.println();
//用来记录去除重复之后的数组长度和给临时数组作为下标索引
int t = 0;
//临时数组
Object[] temparr = new Object[arr.length];
//遍历原数组
for(int i = 0; i < arr.length; i++){
//声明一个标记,并每次重置
boolean isTrue = true;
//内层循环将原数组的元素逐个对比
for(int j=i+1;j<arr.length;j++){
//如果发现有重复元素,改变标记状态并结束当次内层循环
if(arr[i]==arr[j]){
isTrue = false;
break;
}
}
//判断标记是否被改变,如果没被改变就是没有重复元素
if(isTrue){
//没有元素就将原数组的元素赋给临时数组
temparr[t] = arr[i];
//走到这里证明当前元素没有重复,那么记录自增
t++;
}
}
//声明需要返回的数组,这个才是去重后的数组
Object[] newarr = new Object[t];
//用arraycopy方法将刚才去重的数组拷贝到新数组并返回
System.arraycopy(temparr,0,newarr,0,t);
Arrays.sort(newarr);//从小到大排序
for(int i=0;i<newarr.length;i++){
System.out.print(newarr[newarr.length-i-1]+",");//从大到小输出
}
System.out.println(Arrays.toString(newarr));
System.out.println();
}
@Test
/*2.
有两个整数型数组,长度相同,输入数组各项,完成输入后,
判断两个数组的每个数组位置的值是否相同,如果都相同,
则输出true,反之则输出false
*/
public void test8(){
Scanner sc = new Scanner(System.in);
int[] arr1 = new int[3];
int[] arr2 = new int[arr1.length];
int x = 0;
for(int j = 0;j < arr1.length;j++){
System.out.print("请输入第一个数组元素:");
arr1[j] =sc.nextInt();
}
System.out.println("第一个数组:"+Arrays.toString(arr1));
for(int i = 0;i < arr2.length;i++){
System.out.print("请输入第二个数组元素:");
arr2[i] =sc.nextInt();
}
System.out.println("第二个数组:"+Arrays.toString(arr2));
for(int i = 0;i < arr1.length;i++){
if(arr1[i]==arr2[i]){
x++;
}else if(x == arr1.length){
break;
}
}
if(x == arr1.length){
System.out.println("true");
}else{
System.out.println("false");
}
}
@Test
/**3.
手动输入一个长度为10的数组,
判断数组中是否存在四个连续相等的数值,
如果存在则输出true,反之输出false
*/
public void test9(){
Scanner sc = new Scanner(System.in);
int x=0;
int[] arr=new int[10];
for(int i=0;i<arr.length;i++){
System.out.print("输入第"+i+"个数字:");
arr[i]=sc.nextInt();
}
for(int i=1;i<arr.length;i++){
if(arr[i]==arr[i-1]){
x++;
}
if(x==3){
break;
}
}
if(x==3){
System.out.println(true);
}else{
System.out.println(false);
}
}
@Test
/*4.
手动输入两个数组,将两个数组整合成为一个数组,并由大到小进行排序
*/
public void test10(){
Scanner sc = new Scanner(System.in);
int[] arr1 = new int[3];
int[] arr2 = new int[arr1.length];
for(int j = 0;j < arr1.length;j++){
System.out.print("请输入第一个数组元素:");
arr1[j] =sc.nextInt();
}
System.out.println("第一个数组:"+Arrays.toString(arr1));
for(int i = 0;i < arr2.length;i++){
System.out.print("请输入第二个数组元素:");
arr2[i] =sc.nextInt();
}
System.out.println("第二个数组:"+Arrays.toString(arr2));
int[] arr3 = new int[arr1.length+arr2.length];
for(int i = 0;i<arr1.length;i++){
arr3[i]=arr1[i];
}
for(int j=0;j<arr2.length;j++){
arr3[arr1.length+j]=arr2[j];
}
System.out.println("第三个数组:"+Arrays.toString(arr3));
}
}
Java基础练习题(数组)1
最新推荐文章于 2024-07-15 22:27:12 发布