黑马程序员---------集合取交集,倒序输出
------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;
}
}