在不允许新建对象的条件下,将list中指定条件的值去除

package com.liujianwang.learning;

import java.util.LinkedList;
import java.util.List;

public class ListTest {

    public static void main(String[] args) {
        /*
         * 在不允许新建对象的条件下,将list中指定条件的值去除。
         * 例如:移除list中值大于6的元素。
         */

        //测试数据
        List<Integer> list = new LinkedList<Integer>();
        for(int i = 0; i < 10; i++) {
            list.add(i);
        }

        //方案一:正序,考虑索引取值问题
//        removeListAsc(list);

        //方案二:倒序,可避免索引取值问题。
        removeListDesc(list);    

        System.out.println(list);

    }
    /**
     * 方案一:正序处理,考虑索引取值问题。
     */
    private static void removeListAsc(List<Integer> list) {
        for(int i = 0; i < list.size(); i++) {
            if (list.get(i) > 6) {
                list.remove(i);
                i--;
            }
        }
    }    

    /**
     * 方案二:倒序处理,可避免索引问题。
     */
    private static void removeListDesc(List<Integer> list) {
        for(int i = (list.size() - 1); i >= 0; i--) {
            if (list.get(i) > 6) {
                list.remove(i);
            }
        }
    }
}

原文地址:https://www.cnblogs.com/liujianwang/p/9276916.html

时间: 2024-10-10 06:58:32

在不允许新建对象的条件下,将list中指定条件的值去除的相关文章

JavaScript获取select下拉框中的第一个值

JavaScript获取select下拉框中的第一个值 1.说明 获取select下拉框中的第一个值 2.实现源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtm

R语言-查询向量中指定条件的数据-which

1 > c(1,2,5,2,1,6,19,77,68,21,2,2,1,1)->x 2 > which(x>20)->y 3 > y 4 [1] 8 9 10 5 > x[y] 6 [1] 77 68 21 which函数返回符合条件元素的下标 原文地址:https://www.cnblogs.com/qianheng/p/10854473.html

SQL中多条件查询括号的用途

界面: 代码 select id,routeName,routeCharacteristic,routeIntroductions,costDetail,participate,click,routeCategory,dineMenu,weather,isEnable,addPerson,addDate,competitiveProducts,luxury,onVacation,characteristic,hotRecommend,referencesPrice,specialPreferen

获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中)

import java.io.File; import java.io.FileFilter; import java.io.ObjectInputStream.GetField; import java.util.ArrayList; import java.util.List; public class huoquwenjian { /*获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中) * 思路: * 1,既然包含子目录,就需要递归. * 2

框架 day50 BOS项目 4 批量导入(ocupload插件,pinyin4J)/POI解析Excel/Combobox下拉框/分区组合条件分页查询(ajax)/分区数据导出(Excel)

知识点: 批量导入(ocupload插件,pinyin4J /POI解析Excel(apache POI) /区域分页查询 /Combobox下拉框 /分区组合条件分页查询(ajax) /分区数据导出(Excel下载) BOS项目笔记第4天 1.    区域批量导入功能 *Ajax不支持文件上传. *上传并且不刷新上传页面原理: Target到一个0,0,0的隐藏iframe里,造成一个没有刷新的假象 <form target="myIframe" action="ab

.NET DLL 保护措施详解(五)常规条件下的破解

为了证实在常规手段破解下能有效保护程序核心功能(演示版本对AES加解密算法及数据库的密钥(一段字符串)进行了保护),特对此DLL保护思路进行相应的测试,包含了反编译及反射测试,看是否能得到AES加解密算法的密钥及数据库字符串. 反编译: 我这里使用了.net dll反编译工具ILSpy,以下为真实截图. 1. NetProtect.BLLDemo.dll 2. NetProtect.ConsoleApplication1.exe 3. NetProtect.CoreClr.dll 综合上图,可以

java新建对象的static块与构造器的执行顺序

前言:本文解决的问题 新建一个对象静态代码块什么时候执行 {}里面的代码什么时候执行 有继承关系时的执行顺序 1.问题出现的背景: 构造器是用来实例化一个对象,当我们使用new关键字来新建对象时,构造器就会被调用.如果class中含有静态代码块(static)和普通代码块(在{}括号下),新建对象时的调用顺序是:静态代码块>{里面的代码}>构造器. 2.例子说明: 2.1代码说明 //父类 public class StaticExample{ { System.out.println(&qu

jqgrid 表格中筛选条件的多选下拉,树形下拉 ;文本框清除插件;高级查询多条件动态筛选插件

/** * @@desc 文本框清除按钮,如果isAutoWrap为false当前文本框父级必须是relative定位,boostrap参考input-group * @@author bear.LEE <571115139#qq.com> * @@since 2018-08-21 **/ ; (function ($) { $.fn.extend({ addClearBtn: function (options, $o) { var deft = { symbolClass: "f

oracle 统计指定条件下所有表的行数

今天 需要统计下指定用户下的所有表的行数,于是采用了oracle 内置视图: select table_name,num_rows  from dba_tables where owner = 'USERNAME';  或 select table_name,num_rows from user_all_tables ; 可是统计结果发现,有的表的统计数量和实际数量有差异,因此,直接自己写了个统计指定条件下表的记录的sql: --创建一个表用于存储计算结果 create table t_temp