JAVA基础(数组查找)

本文介绍了一个简单的数组元素查找算法,该算法通过遍历数组来查找指定元素第一次出现的位置,并返回其索引。若元素不存在于数组中,则返回-1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,实现效果 

  • 需求:数组元素查找(查找指定元素第一次在数组中出现的索引)

  • 
    class Demo12_Array {
    
        public static void main(String[] args) {
    
            int[] arr = {11,22,33,44,55,66,77};
    
            int index = getIndex(arr,88);
    
            System.out.println(index);
    
        }
    
    
    
        /*
    
        查找元素索引
    
        1,返回值类型int
    
        2,明确参数列表,int[] arr,int value
    
        */
    
        public static int getIndex(int[] arr,int value) {
    
            for (int i = 0;i < arr.length ;i++ ) {                //数组的遍历
    
                if (arr[i] == value) {                            //如果数组中的元素与查找的元素匹配
    
                    return i;
    
                }
    
            }
    
            return -1;
    
            
    
        }
    
    }

     

 

### Java 中对象数组查找操作 在 Java 中,可以通过多种方式实现对对象数组的操作,包括查找特定的对象或属性。以下是几种常见的方法: #### 使用 `for` 循环逐一遍历 通过传统的 `for` 循环可以逐一比较数组中的每个对象是否满足给定条件。这种方法是最基础的方式之一。 ```java public class Main { public static void main(String[] args) { Person[] persons = new Person[]{new Person("Alice", 25), new Person("Bob", 30)}; String targetName = "Bob"; boolean found = false; for (Person person : persons) { if (person.getName().equals(targetName)) { System.out.println("Found: " + person); found = true; break; } } if (!found) { System.out.println("Not Found"); } } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } @Override public String toString() { return "Person{name='" + name + "', age=" + age + "}"; } } ``` 此代码展示了如何使用循环来查找具有特定名字的人[^1]。 --- #### 利用 `Arrays.stream()` 和 Lambda 表达式 对于更现代的方法,可以利用 Java 8 引入的流(Stream API)。这种方式更加简洁高效。 ```java import java.util.Arrays; import java.util.Optional; public class Main { public static void main(String[] args) { Person[] persons = new Person[]{new Person("Alice", 25), new Person("Bob", 30)}; Optional<Person> result = Arrays.stream(persons) .filter(p -> p.getName().equals("Bob")) .findFirst(); if (result.isPresent()) { System.out.println("Found: " + result.get()); } else { System.out.println("Not Found"); } } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } @Override public String toString() { return "Person{name='" + name + "', age=" + age + "}"; } } ``` 这段代码演示了如何借助 Stream API 来简化查找逻辑[^4]。 --- #### 查找公共元素 当需要找到两个数组之间的共同元素时,可以采用如下策略: ```java import java.util.ArrayList; import java.util.List; public class CommonElementsFinder { public static List<String> findCommonElements(String[] array1, String[] array2) { List<String> commonList = new ArrayList<>(); for (String element : array1) { for (String otherElement : array2) { if (element.equals(otherElement)) { commonList.add(element); break; } } } return commonList; } public static void main(String[] args) { String[] array1 = {"apple", "banana", "orange"}; String[] array2 = {"grape", "banana", "mango"}; List<String> commonElements = findCommonElements(array1, array2); System.out.println("Common Elements: " + commonElements); } } ``` 上述代码实现了两组字符串数据间的交集计算[^5]。 --- #### 提取对象数组中的某个属性 如果希望提取对象数组中某一具体字段作为新集合的一部分,则可考虑以下方案: ```java import java.util.stream.Collectors; import java.util.Arrays; import java.util.List; public class AttributeExtractor { public static void main(String[] args) { Person[] persons = new Person[]{ new Person("Alice", 25), new Person("Bob", 30) }; List<String> names = Arrays.stream(persons) .map(Person::getName) .collect(Collectors.toList()); System.out.println(names); // Output: [Alice, Bob] } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } } ``` 这里说明了怎样快速抽取所需的信息而无需显式迭代整个结构[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兴帅_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值