本帖最后由 xuxu5112 于 2015-8-27 00:44 编辑
- /*
- 1.数组元素查找(查找指定元素第一次在数组中出现的索引)
- 2.数组中有很多重复的指定元素,如何找到该元素的所有位置(角标).
- */
- import java.util.Scanner;
- public class Demo {
- public static void main(String[] args) {
- int[] arr = {3,3,5,8,3,8,7,3}; //定义一个数组arr
- print(arr); //调用方法print 打印
- Scanner sc = new Scanner(System.in);
- System.out.println("输入一个元素");
- int x = sc.nextInt(); //输入一个数
- first(arr,x);
- System.out.println(x+"在数组中出现的角标是");
- print(all(arr,x));
- System.out.println("----------");
- print_1(all(arr,x));//打印x在数组中位置的角标
-
- }
- public static void print(int[] arr) { // 定义方法print 遍历数组
- for (int i = 0; i < arr.length ;i++ ) {
- System.out.println(arr[i]);
- }
- }
- public static void print_1(int[] arr) { // 定义方法print_1
- if(arr[0]== -1) //arr[0]单独判断是否打印
- System.out.println(0);
- for (int i = 1; i < arr.length ;i++ ) {//打印数组中的非0字符
- if (arr[i] != 0) {
- System.out.println(arr[i]);
- }
- }
- }
- public static void first(int[] arr,int x){//定义方法first 查找数据x在数组arr
- for (int i =0; i < arr.length ;i++ ) {//中第一次出现的位置
- if (arr[i] == x) {
- System.out.println(x+"在数组中第一次出现的角标是"+i);
- break;
- }
- }
-
- }
- public static int[] all(int[] arr,int x) {//定义方法all 查找数据x在数组中所有出现的位置
- int[] brr = new int[arr.length]; //定义数组brr 当做存角标的容器
- if (arr[0]==x) { //单独判断 arr[0]
- brr[0]= -1;
- }
- for (int i =1; i < arr.length ;i++ ) {//中第一次出现的位置 返回角标
- if (arr[i] == x) {
- brr[i] = i; //将x出现的坐标存入数组brr
- }
- }
- return brr;
- }
-
- }
复制代码 |
|