Java数组实例练习题整理

初级

1.定义一个函数,获取某个数组中的最小值

package practise;

public class GetMin {
  public static void getMin(int[]num){
    int min = num[0];
    for(int i=0;i<num.length;i++){
      min=(num[i]<min?num[i]:min);
    }
    System.*out*.print(min);
  }
  public static void main(String[] args){
    int []a=new int[]{8,6,4,2,5};
    *getMin*(a);

  }
}

2.定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出

package practise;

public class GetmaxIndex {
  public static void main(String[] args) {
    int[] n = new int[]{1, 2, 3, 4, 5, 6, 0};
    int max = n[0];
    int index=0;
    for (int i = 0; i < n.length;i++){
      if(max<n[i]){
        max=n[i];
        index=i;
      }
    }
    System.*out*.println(max);
    System.*out*.println(index);
  }
}

3.给定一个整型数组,数组成员10个,求该数组中第二大的数的下标

package practise;

import java.util.Arrays;

public class TheSecendmax3 {
  public static void main(String[] args) {
    int[] num = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
    int[] arr1 = Arrays.*copyOf*(num, num.length);
    Arrays.*sort*(num);

    int[] num1 = Arrays.*copyOfRange*(num, 0, 9);

    System.*out*.println(num1[num1.length-1]);
    for (int i = 0; i < arr1.length-1; i++) {
      if (arr1[i] == num1[num1.length-1]) {
        System.*out*.println("第二大的数的下标为"+i);
      }

    }
  }
}

4.B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?

package practise;

import java.util.Arrays;

public class AverageScore {
  public static void main(String[] args){
    double[] num=new double[]{99,97,96,95,94,92,91,90,88,100};
    Arrays.*sort*(num);
    double[] NewNum=Arrays.*copyOfRange*(num,1,9);
    double average=0;
    double sum=0;
    for(int I=0;i<NewNum.length;i++){
      sum=sum+NewNum[I];
    }
    average=sum/NewNum.length;
    System.*out*.println(average);
  }

}

5.利用选择排序对数据进行降序排序

package practise;

public class Select_Sort {

  //原理:在一组数组里面定义一个最大数值的下标,让int[index]和其它数值挨个比较,选出最大的值int[i],
// 并把该最大值的下标i和我们原先设置的index进行置换,即index=i;
//并且把他们两个的位置进行互换,依次类推,直到完全排序好

    public static void main(String[] args){
      int[] num=new int[]{4,3,1,6,9,5};
      *ChooseSort*(num);
    }
    public static void ChooseSort(int[] array){

      for(int I=0;i<array.length;i++){
        Int index=i;//定义当前下标为最小值下标
        for(int j=I+1;j<array.length;j++){
          if(array[j]<array[index]){//a[I]<a[index] 从下到大排序
            index =j;
          }

        }

        int temp = array[index];//交换
        array[index] = array[I];
        array[I] = temp;
      }
      for (int e:array){
        System.*out*.print(e+”\t”);
      }
    }
  }

6.定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。

package practise;

import java.util.Arrays;

public class StudentScore {
  public static void Sort(double[] num) {
    Arrays.*sort*(num);
      double sum=0.0;
    for (int e=0;e<num.length;e++) {
      sum=sum+num[e];

    }

      System.*out*.println(“max=“+num[num.length-1]);
      System.*out*.println(“min=“+num[0]);
      System.*out*.println(“average=“+sum/num.length);
    System.*out*.println(“sum=“+sum);
  }
  public static void main(String[] agrs){
    double[] num=new double[]{99,97,96,95,94,92,91,90,88,100};
    *Sort*(num);
  }

}

7.定义一个长度为10的int数组,统计数组中的最大值、最小值、以及奇数和偶数的个数

package practise;

import java.util.Arrays;

public class TheSeven {
  public static void main(String[] args){
    int[] num= new int[]{99,97,96,95,94,92,91,90,88,100};
    Arrays.*sort*(num);

    int evensum=0;
    int oddsun=0;
    for(int I=0;i<num.length;i++){
      if(num[I]%2==0){
        evensum++;
      }else if(num[I]%3==0){
        oddsun++;
      }
    }

System.*out*.println(“max=“+num[0]+”,min=“+num[num.length-1]);
    System.*out*.println(“奇数的个数=“+oddsun+”偶数的个数=“+evensum);
  }
}

8.提取一个方法,将指定数组中的数组元素进行反转

例如:{10,23,2,45,6}—>{6,45,2,23,10}

package practise;

public class BackOverNumberlist {
  public static void main(String[] args){
    int[] array=new int[]{1,2,3,4,5,6,7,8};
    *BackOver*(array);
  }
  public static void BackOver(int[] array){
    for(int i=array.length-1;i>=0;i--){
      System.*out*.print(array[i]+" ");

    }

  }
}

扩展练习

输出100到1000的水仙花数:

public class LoopTest{
  public static void main(String[] args){
    int bai = 0;
    int shi = 0;
    int ge = 0;
    for(int i = 100; i < 1000; i++){
      bai = i/100;
      shi = i/10%10;
      ge = i%10;
      if(bai*bai*bai+shi*shi*shi+ge*ge*ge == i ){
        System.out.println(i);
      }
    }
  }
}

打印所有字母:

public class LoopTest{
  public static void main(String[] args){
    char lower = 'a';
    char upper = 'A';
    for(int i = 0 ; i < 26 ; i++){
      System.out.println(lower+"  "+upper);
      lower++;
      upper++;
    }
  }
}
时间: 2019-07-17

java数组的初始化及操作详解

数组的基本概念 如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, i2, i3, ... i100; 但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次. 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作.数组本身属于引用数据类型,那么既然是引

java二维数组遍历的2种代码

二维数组遍历: 思想: 1.先将二维数组中所有的元素拿到 2.再将二维数组中每个元素进行遍历,相当于就是在遍历一个一维数组 第一种方法:双重for循环 //遍历二维数组 public class Traverse_a_two_dimensional_array { public static void main(String[] args) { // TODO Auto-generated method stub int[][] arr = new int[2][3];//动态创建:2个元素(外

最简单易懂的java数组排序方法整理

前言 JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法.本文就给大家介绍了关于最简单易懂的java数组排序方法,下面话不多说了,来一起看看详细的介绍吧 方法如下: 1.快速排序:首先是最简单的Array.sort,直接进行排序: public static void main(String[] args) { int[] arr = {4,3,5,1,7,9,3}; Arrays.sort(arr); for (int i : arr){ Syste

9个java数组常用操作实例

数组的特点: 数组是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来唯一确定数组中的元素.根据数组的维度,可以将其分为一维数组.二维数组和多维数组等. 总的来说,数组具有以下特点: 数组可以是一维数组.二维数组或多维数组. 数值数组元素的默认值为 0,而引用元素的默认值为 null. 交错数组是数组的数组,因此,它的元素是引用类型,初始化为 null.交错数组元素的维度和大小可以不同. 数组的索引从 0 开始,如果数组有 n

Java使用反射操作数组示例

本文实例讲述了Java使用反射操作数组.分享给大家供大家参考,具体如下: 一 实战 1 代码 import java.lang.reflect.*; public class ArrayTest1 { public static void main(String args[]) { try { // 创建一个元素类型为String ,长度为10的数组 Object arr = Array.newInstance(String.class, 10); // 依次为arr数组中index为5.6的元

Java二维数组简单定义与使用方法示例

本文实例讲述了Java二维数组简单定义与使用方法.分享给大家供大家参考,具体如下: Java的二维数组是先创建一个一维数组,然后该数组的元素再引用另外一个一维数组.在使用二维数组的时候,通过两个中括号[]来访问每一层维度的引用,直到访问到最终的数据. public class MultiDimArray{ /** * @param args */ public static void main(String[] args) { int[][] arr = new int[3][]; arr[0]

Java替换int数组中重复数据的方法示例

本文实例讲述了Java替换int数组中重复数据的方法.分享给大家供大家参考,具体如下: package test; import java.util.HashSet; public class TestList { /** * 根据传递过来的参数过滤掉重复数据 * @param number:需要过滤掉的数据 * @return:筛选好的新数组 */ public static int[] Filter(int[] number){ HashSet<Integer> hs=new HashSe

Java获得一个数组的指定长度排列组合算法示例

本文实例讲述了Java获得一个数组的指定长度排列组合算法.分享给大家供大家参考,具体如下: package demo; import java.util.Stack; /** * JAVA获得一个数组的指定长度的排列组合.<br> * * @author JAVA世纪网(java2000.net, laozizhu.com) */ public class TestSequenceAll { public static void main(String[] args) { TestSequen

Java实现求数组最长子序列算法示例

本文实例讲述了Java实现求数组最长子序列算法.分享给大家供大家参考,具体如下: 问题:给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱) 例如:给定一个长度为8的数组A{1,3,5,2,4,6,7,8},则其最长的单调递增子序列为{1,2,4,6,7,8},长度为6. 思路1:第一眼看到题目,很多人肯定第一时间想到的是LCS.先给数组排个序形成新数组,然后再把新数组和原数组拿来求LCS,即可得到答案.这种解法很多人能想得到,所以就不再赘述. 思路2:按照思路1的

JAVA ArrayList详细介绍(示例)

第1部分 ArrayList介绍ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口.ArrayList 继承了AbstractList,实现了List.它是一个数组队列,提供了相关的添加.删除.修改.遍历等功能.ArrayList 实现了RandmoAccess接口,即提供了随机访问功能.Randmo

Java map存放数组并取出值代码详解

获取map的值主要有四种方法,这四种方法又分为两类,一类是调用map.keySet()方法来获取key和value的值,另一类则是通过map.entrySet()方法来取值,两者的区别在于,前者主要是先获取到所有的key的集合,当你需要查询value的值的时候需要通过key来查询value,后者则直接将key和value的键值对直接取出来,只用查询一次,对于那种性能更好,我觉得还是用map.entrySet()更好一点,具体请参见map.keySet()和map.EntrySet()的比较,接下

Java集合和数组的区别

集合和容器都是Java中的容器. 区别 数组特点:大小固定,只能存储相同数据类型的数据 集合特点:大小可动态扩展,可以存储各种类型的数据 转换 数组转换为集合: Arrays.asList(数组) 示例: int[] arr = {1,3,4,6,6}; Arrays.asList(arr); for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } 集合转换为数组: 集合.toArray(); 示例: List list = ne

详解Java中的数组与字符串相关知识

Java数组的定义和使用 如果希望保存一组有相同类型的数据,可以使用数组. 数组的定义和内存分配 Java 中定义数组的语法有两种: type arrayName[]; type[] arrayName; type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量.例如: int demoArray[]; int[] demoArray; 这两种形式没有区别,使用效果完全一样,读者可根据自己的编程习惯选择

浅谈java中字符串数组、字符串、整形之间的转换

字符串数组转字符串(只能通过for循环): String[] str = {"abc", "bcd", "def"}; StringBuffer sB = new StringBuffer(); for (int i = 0; i < str.length;i++) { sB.append(str[i]); } String s = sB.toString(); 字符数组转字符串可以通过下面的方式: char[] data = {"