集合的addAll与retainAll方法

List、Set中都有方法
addAll(Collection c) :
    对于set来说,是将c中所有元素添加到一个Set中,如果Set中已有某一元素,则不添加,因Set不允许有重复值
    对于List来说,是将c中元素append到一个List中,可重复添加,允许有重复值

retainAll(Collection c)
    两个集合求交集,只保留交集数据


package test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class test1 {

        
        public static void main(String[] args) {
              List<String> list = new ArrayList<String>();
              list.add("第一个元素");       //向列表中添加数据
              list.add("第二个元素");        //向列表中添加数据
              list.add("第三个元素");       //向列表中添加数据
              List<String> list1 = new ArrayList<String>();
              list1.add("第一个元素");        //向列表中添加数据
              list1.add("第三个元素");       //向列表中添加数据
              
              System.out.println("--------测试retainAll的使用------------:");
              boolean ret = list1.retainAll(list);    //获得两集合相交的元素
              Iterator<String> it = list1.iterator();   //创建迭代器
              while (it.hasNext()) {       //循环遍历迭代器
               System.out.println(it.next());    //输出集合中元素
              }
              /*结果:    
                   第一个元素
                  第三个元素
              */
              System.out.println("--------测试list addAll的结果-------------:");
              
              
              String[] ss = {"s1","s2","1"};  
                List<String> str = Arrays.asList(ss);  
                  
                List<String> stList = new ArrayList<String>();  
                stList.add("1");  
                stList.add("2");  
                stList.add("3");  
                stList.addAll(str);  
                System.out.println(stList);  
                    //结果:[1, 2, 3, s1, s2, 1] 因List中允许重复值  
                System.out.println("--------测试set addAll的使用-------------:");
                Set<String> s = new HashSet<String>();  
                s.add("1");  
                //s.add(1);  
                s.add("2");  
                s.add("3");  
                s.addAll(str);  
                System.out.println(s);  
              //结果:[1, 2, 3, s1, s2] 因为set中不允许有重复值
              
            }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值