java中对List数据递归筛选

Python012

java中对List数据递归筛选,第1张

这个很好写,无非就是list读写麻烦点,写一个递归方法

public list<t>findavg() {

for(int i=0list){

sum += list[i]

}

avg=sum/list.size()

for(int i=0list){

avg*(1-0.2)<=list[i]<=avg*(1+0.2)

list2.add(list[i])

}

return list2

}

依次处理list的元素list[i],用dup装去重元素,mul装重复元素。先检查dup是否包含元素list[i],如果包含则加入mul中。如果没有则加入dup中。最后mul中就是重复数据,dup中就是去掉重复元素的列表。下面是一个实例,首先生成一个列表list,然后找出重复元素。

public class Duplication

{

    public static void main(String[] args)

    {

        List<Integer> list = new ArrayList<Integer>()

        for(int i = 1i <= 10i++)

        {

            if(i%3 == 0) continue

            if(i%2 == 0)

            {

                list.add(i)

                list.add(i)

            }

            else

                list.add(i)

        }

        System.out.println(list)

        

        List<Integer> dup = new ArrayList<Integer>()

        List<Integer> mul = new ArrayList<Integer>()

        for(int a:list)

        {

            if(dup.contains(a))

                mul.add(a)

            else dup.add(a)

        }

        System.out.println(dup)

        System.out.println(mul)

    }

}

//先用contains判断是否有该元素

if(list集合.contains(对象)){

list集合.indexOf(对象名)

}

因为List 是一个元素有序的、可以重复、可以为 null 的集合;

所以;

indexOf可以获取元素出现的第一个位置的引索,与之相反的是lastlndexOf获取元素最后出现的位置引索,如果集合中没有该元素则返回-1,其原理都是利用equals方法配合历遍来判断。

扩展资料:

C++中list用法详解

.1list中的构造函数:

list() 声明一个空列表;

list(n) 声明一个有n个元素的列表,每个元素都是由其默认构造函数T()构造出来的

list(n,val) 声明一个由n个元素的列表,每个元素都是由其复制构造函数T(val)得来的

list(n,val) 声明一个和上面一样的列表

list(first,last) 声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素