A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 xuxu5112 于 2015-8-27 00:44 编辑
  1. /*
  2. 1.数组元素查找(查找指定元素第一次在数组中出现的索引)
  3. 2.数组中有很多重复的指定元素,如何找到该元素的所有位置(角标).
  4. */

  5. import java.util.Scanner;
  6. public class Demo {
  7.         public static void main(String[] args) {
  8.                 int[] arr = {3,3,5,8,3,8,7,3};  //定义一个数组arr
  9.                 print(arr);        //调用方法print 打印
  10.                 Scanner sc = new Scanner(System.in);
  11.                 System.out.println("输入一个元素");
  12.                 int x = sc.nextInt();  //输入一个数
  13.                 first(arr,x);
  14.                 System.out.println(x+"在数组中出现的角标是");
  15.                 print(all(arr,x));
  16.                 System.out.println("----------");
  17.                 print_1(all(arr,x));//打印x在数组中位置的角标
  18.         
  19.         }
  20.                 public static void print(int[] arr) {  // 定义方法print  遍历数组
  21.                         for (int i = 0; i < arr.length ;i++ ) {
  22.                                 System.out.println(arr[i]);
  23.                         }
  24.                 }
  25.                 public static void print_1(int[] arr) {  // 定义方法print_1  
  26.                         if(arr[0]== -1)                                                //arr[0]单独判断是否打印
  27.                           System.out.println(0);
  28.                         for (int i = 1; i < arr.length  ;i++ ) {//打印数组中的非0字符
  29.                                 if (arr[i] != 0) {
  30.                                 System.out.println(arr[i]);
  31.                                 }
  32.                         }
  33.                 }
  34.         public static void first(int[] arr,int x){//定义方法first 查找数据x在数组arr
  35.                 for (int i =0; i < arr.length ;i++ ) {//中第一次出现的位置
  36.                         if (arr[i] == x)     {
  37.                         System.out.println(x+"在数组中第一次出现的角标是"+i);
  38.                         break;
  39.                         }
  40.                 }        
  41.         
  42.         }
  43.         public static int[] all(int[] arr,int x) {//定义方法all 查找数据x在数组中所有出现的位置
  44.                 int[] brr = new int[arr.length]; //定义数组brr 当做存角标的容器
  45.                 if (arr[0]==x) {                 //单独判断 arr[0]
  46.                         brr[0]= -1;   
  47.                 }
  48.                 for (int i =1; i < arr.length ;i++ ) {//中第一次出现的位置 返回角标
  49.                         if (arr[i] == x) {
  50.                                 brr[i] = i;    //将x出现的坐标存入数组brr
  51.                         }
  52.                 }        
  53.                 return brr;
  54.         }
  55.                         
  56. }
复制代码

666666.jpg (52.73 KB, 下载次数: 1)

666666.jpg

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马