集合取交集,倒序输出

黑马程序员---------集合取交集,倒序输出

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- /*。
题目:已知集合List<String> listA = new ArrayList<String>();
listA中有“1234”,“2456”,“3654”,“4765”,“5324”,“6098”,“7890”,“1091”,“2670”对象。
已知集合List<Integer> listB = new ArrayList<Integer>();listB中有1,2,3,4,5,6,7,1,2对象。
现在请:将listA中的对象拆分成单独的数字字符串(也就是将“1234”,拆分成“1”,“2”,“3”,“4”四个对象),
并保存在集合listA中①给listA、listB分别去重②创建新集合List<String> listC = new ArrayList<String>();
将listA和listB中相同(字符相同则相同)的对象保存到listC③给集合listC按照数字倒序排列,然后输出。

 * 
 * 分析:字符串变字符数组,然后再依次存储,完成拆分
 * Integer类型对象转换为String类型
 * 使用retainAll()获取交集,存入listC 
 * 倒序reverse()

 * */

import java.util.*;

public class Test27 {


public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> ListA =getLista();//得到A
System.out.println("listA:"+ListA);//打印
List<Integer> ListB =getListB();//得到B
System.out.println("listB:"+ListB);
List<String> ListA1= ChaiFen( ListA);//拆分A
System.out.println("拆分listA:"+ListA1);
List<String> ListC=newListc(ListA1,ListB);//得到C,并且倒序
System.out.println("listC:"+ListC);

}
public static List<String> getLista()//生成LIstA
{
List<String> listA = new ArrayList<String>();
listA.add("1234");
listA.add("2456");
listA.add("3654");
listA.add("4765");
listA.add("5324");
listA.add("6098");
listA.add("7890");
listA.add("1091");
listA.add("2670");
//System.out.println("listA:"+listA);
return listA;

}
public static List<Integer> getListB()//生成LIstB
{
List<Integer> listB = new ArrayList<Integer>();
listB.add(1);
listB.add(2);
listB.add(3);
listB.add(4);
listB.add(5);
listB.add(6);
listB.add(7);
listB.add(1);
listB.add(2);
//System.out.println("listB:"+listB);
return listB;
}
public static List<String> ChaiFen(List<String> lista)//拆分对象,返回一个整形集合
{
List<String> listA1 = new ArrayList<String>();
Iterator<String> it = lista.iterator();
while(it.hasNext())
{
String str=it.next();
char[] ch = str.toCharArray();//
//String s = String.valueOf(ch[0]);
listA1.add(String.valueOf(ch[0]));
listA1.add(String.valueOf(ch[1]));
listA1.add(String.valueOf(ch[2]));
listA1.add(String.valueOf(ch[3]));
}
//System.out.println("chaifen:"+listA1);
return listA1;
}
    public static List<String> newListc(List<String> lista,List<Integer> listb)//获取新的集合,然后去掉AB相同的, 并打印C
    {
    //List<String> listC = new ArrayList<String>();
    List<String> listB =new ArrayList<String>();
    Iterator<Integer> lt1 = listb.iterator();
    while(lt1.hasNext())
    {
    int in =lt1.next();
    String str = String.valueOf(in);//转字符串
    listB.add(str);
    }
    lista.retainAll(listB);
    //Iterator<String> it = lista.iterator();    
    List<String> listC =lista;
    Collections.reverse(listC);//集合倒序
    //System.out.println(listC);
    return listC;
    }
  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值