JAVA中List的几个方法

本文详细介绍了如何使用Java中的ArrayList进行元素的添加、删除、获取和修改等操作,包括add()、remove()、get()和set()方法的具体应用。

add()方法。插入某个位置的数据,他有两个参数一个参数是下标,一个参数是元素。需要注意的是下标大小应该小于等于List集合大小,否则就会抛出下标越界异常!

代码:    public static void main(String[] args) {
        // TODO Auto-generated method stub
         ArrayList list=new ArrayList();
         list.add("a");
         list.add("b");
         list.add("c");
         list.add("d");
         list.add(4,"z");
         System.out.println(list);
         
        }

运行结果:[a, b, c, d, z]

 

remove()方法通过下标删除。需要注意的是删除操作不会自动装箱,只会删除下标所在元素。

get()方法,获取List指定位置的元素,我们可以通过get()遍历集合中的元素。

代码:    public static void main(String[] args) {
        // TODO Auto-generated method stub
         ArrayList list=new ArrayList();
         list.add("a");
         list.add("b");
         list.add("c");
         list.add("d");
        for(int i=0;i<list.size();i++){
            
            System.out.println(list.get(i));
            
        }
         
               
     }

运行结果:

a
b
c
d

 

set()方法,把指定下标位置的元素修改成其他元素。

转载于:https://www.cnblogs.com/lovelyYakir/p/5563803.html

### Java 中对 List 进行去重的方法Java 编程中,`List` 是一种常见的集合类型,用于存储一组有序的对象。然而,由于 `List` 允许存在重复元素,在实际开发过程中可能需要对其进行去重处理。以下是几种常用的去重方法及其示例代码。 #### 方法一:通过循环遍历手动去重 此方法的核心思想是创建一个新的列表来保存唯一值,并逐一检查原列表中的每个元素是否已存在于新列表中。如果不存在,则将其加入新列表。 ```java public static void removeDuplicatesWithLoop() { List<Integer> list = Arrays.asList(7, 7, 8, 8, 8, 11, 11, 9); List<Integer> newList = new ArrayList<>(list.size()); for (int i = 0; i < list.size(); i++) { if (!newList.contains(list.get(i))) { newList.add(list.get(i)); } } System.out.println(newList); // 输出: [7, 8, 11, 9] } ``` 这种方法的时间复杂度较高,适用于小型数据集[^1]。 --- #### 方法二:利用 HashSet 的特性自动去重 `HashSet` 不允许有重复元素,因此可以通过将 `List` 转换为 `HashSet` 来实现去重效果。需要注意的是,转换完成后可以再转回 `ArrayList` 或其他类型的 `List`。 ```java import java.util.*; public class RemoveDuplicatesUsingHashSet { public static void main(String[] args) { List<Integer> list = Arrays.asList(7, 7, 8, 8, 8, 11, 11, 9); Set<Integer> set = new HashSet<>(list); List<Integer> uniqueList = new ArrayList<>(set); System.out.println(uniqueList); // 输出: [7, 8, 9, 11] } } ``` 该方法效率高,适合大多数场景,但会改变原始顺序[^3]。 --- #### 方法三:基于 LinkedHashSet 维护插入顺序 如果希望保留原有顺序的同时完成去重操作,可以选择使用 `LinkedHashSet` 替代普通的 `HashSet`。 ```java import java.util.*; public class RemoveDuplicatesPreserveOrder { public static void main(String[] args) { List<Integer> list = Arrays.asList(7, 7, 8, 8, 8, 11, 11, 9); Set<Integer> linkedSet = new LinkedHashSet<>(list); List<Integer> uniqueList = new ArrayList<>(linkedSet); System.out.println(uniqueList); // 输出: [7, 8, 11, 9] } } ``` 这种方式既实现了去重又保持了原有的排列次序[^3]。 --- #### 方法四:借助 Stream API 实现简洁优雅的解决方案 自 Java 8 推出以来,Stream API 成为了处理集合类数据的强大工具之一。下面展示如何运用它来进行高效便捷的去重工作: ```java import java.util.*; import java.util.stream.Collectors; public class RemoveDuplicatesUsingStream { public static void main(String[] args) { List<Integer> list = Arrays.asList(7, 7, 8, 8, 8, 11, 11, 9); List<Integer> uniqueList = list.stream() .distinct() .collect(Collectors.toList()); System.out.println(uniqueList); // 输出: [7, 8, 11, 9] } } ``` 这段代码不仅语义清晰明了而且性能表现良好,特别推荐给熟悉函数式编程风格的朋友尝试采用[^2]。 --- #### 方法五:覆盖 equals 和 hashCode 方法配合特定容器结构 当面对更复杂的业务逻辑或者对象实例时(而非基本数值),我们通常还需要重新定义这些实体类内部的行为准则——即覆写其默认行为下的 `equals()` 及 `hashCode()` 函数体内容之后才能正确判断两者的异同之处进而达到预期目的;最后再放入诸如 `HashSet` 等不允许成员间相互冲突的数据结构之中即可完成整个流程[^4]。 ```java class Item { private String id; private int quantity; @Override public boolean equals(Object o){ ... } @Override public int hashCode(){ ... } } // 使用示例省略... ``` 以上便是关于 Java 列表如何去掉其中冗余项的一些常见技巧介绍以及对应的实际编码案例分享给大家参考学习之用! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值