《数据结构与算法分析 java语言描述》-- java 表List的删除操作,时间复杂度对比
发布日期:2021-06-30 16:57:14 浏览次数:2 分类:技术文章

本文共 1287 字,大约阅读时间需要 4 分钟。

package cn.edut.test_list;import java.util.*;public class Demo_removeEvensVer1 {
public static void main(String[] args) {
Integer[] a = {
6,5,1,4,2}; //算法一测试 System.out.println(removeEvensVer1(createArrayList(a)).toString()); //算法二测试 try {
System.out.println(removeEvensVer2(createArrayList(a)).toString()); }catch (Exception e) {
// TODO: handle exception System.out.println("算法二:迭代器非法"); } //算法三测试 System.out.println(removeEvensVer3(createArrayList(a)).toString()); } public static
List
createArrayList(T[] a) {
List
lst = new LinkedList<>(); for(int i=0 ; i
List
removeEvensVer1(List
lst) { int i=0 ; while( i < lst.size()) { if(lst.get(i)%2==0) { lst.remove(i); }else { i++; } } return lst; } /** * 第二种算法 (这里的迭代器是非法的!会报错) * 删除偶数 * (如果不报错,他们的时间复杂度分别为:) * ArrayList O(N^2) * LinkedList O(N) * @param lst */ public static
List
removeEvensVer2(List
lst) { for(T i : lst) { //因为有删除操作,这个是非法的 if(i%2==0) { lst.remove(i) ; } } return lst ; } /** * 第三种算法 * 删除偶数 * * * * @param lst */ public static
List
removeEvensVer3(List
lst) { Iterator
iterator = lst.iterator() ; while(iterator.hasNext()) { T temp = iterator.next(); if(temp%2==0) { iterator.remove(); } } return lst; }}

转载地址:https://lawsssscat.blog.csdn.net/article/details/102932463 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java培优班-第五天 - 基础语法 - (数组+变量+OOP1)
下一篇:java 注解@Test的简单用法、测试 - 单元测试方法

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月29日 14时05分22秒