数组 集合 获取长度 判断相等

本文深入探讨了数组与集合的区别,重点介绍了数组长度固定的特点及集合如何动态调整长度以弥补这一限制。同时,对比了字符串对象在内存中的存储方式,并详细解释了在Java中如何使用length属性和size方法来获取数组和集合的长度。

一、数组的长度是定死的,不能更改

二、为了弥补 数组的缺陷,发明了集合,来动态控制数组的长度。

三、Java中获取长度

          思:谁的长度:数组,字符串

                  数组:str[]       str.length

                  字符串:str       str.length()

                  集合:list1        list1.size()

for(int i = 0 ; i < list.size() ; i++) {

    system.out.println(list.get(i));

}

四、判断相等

       思:

               例一: String a="abc";        String b="abc";       新建对象:分配空间一个

                           if(a==b)    返回true

                           因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是                     同一个对象;

               例二: String a=new String("abc");    String b=new String("abc");

                           if(a==b)    返回false

                           因为a和b指向不同的对象

        综上:==比较是位置和内容,其一不符合条件,则去除

               例三: String a=new String("abc");    String b=new String("abc");     新建对象:分配空间两个

                           if(a.equals(b))   返回true

        综上:equals方法比较的是字符串的内容是否相同

一般来说:我们比较是内容是否相同,所以首先记住equals方法。

在编程中判断两个数组是否相等,需要满足两个条件:数组长度相等,并且对应下标的元素也相等。可以通过遍历数组的每个元素进行比较,也可以使用编程语言中提供的方法来简化操作。 在 Java 中,可以使用 `Arrays.equals()` 方法来判断两个数组是否相等。该方法会自动比较数组长度和每个元素的值,返回布尔值表示结果。例如: ```java import java.util.Arrays; public class Main { public static void main(String[] args) { int[] array1 = {15, 7, 22, 13, 40}; int[] array2 = {15, 7, 22, 15, 40}; boolean isEqual = Arrays.equals(array1, array2); System.out.println("数组是否相等: " + isEqual); // 输出 false } } ``` 如果手动实现判断逻辑,可以通过遍历数组元素逐一比较。例如: ```java public class ArrayComparison { public static void main(String[] args) { int[] array1 = {15, 7, 22, 13, 40}; int[] array2 = {15, 7, 22, 15, 40}; boolean isEquals = true; if (array1.length == array2.length) { for (int i = 0; i < array1.length; i++) { if (array1[i] != array2[i]) { isEquals = false; break; } } } else { isEquals = false; } if (isEquals) { System.out.println("数组相等"); } else { System.out.println("数组相等"); // 输出 数组相等 } } } ``` 对于集合类型,例如 `List`,可以直接使用 `equals()` 方法进行比较。如果需要排序后再比较,可以使用 `Collections.sort()` 或 `Arrays.sort()` 方法[^3]。 ```java import java.util.Arrays; import java.util.Collections; import java.util.List; public class ListComparison { public static void main(String[] args) { List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5); List<Integer> list2 = Arrays.asList(1, 2, 3, 4, 5); List<Integer> list3 = Arrays.asList(1, 3, 5, 2, 4); System.out.println(list1.equals(list2)); // 输出 true System.out.println(list1.equals(list3)); // 输出 false Collections.sort(list3); System.out.println(list1.equals(list3)); // 输出 true } } ``` 对于多维数组或复杂数据结构,需要使用对应的比较方法,例如 `Arrays.deepEquals()` 来判断多维数组是否相等
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值