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) 声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素