ArrayList
常见使用
/*Arraylist集合*/ //创建ArrayList容器对象,泛型指定对象(容器)中元素类型 //ArrayList容器基于数组结构 List yy=new ArrayList(); //接口声明,面向对象变成又称为面向接口编程 //为容器添加元素,返回Boolean值,true为添加成功,false为添加不成功 boolean yang = yy.add("yang"); boolean jing = yy.add("jing"); System.out.println(yang);//true System.out.println(jing);//true /** *无返回值,在指定索引位置添加元素,当前位置如有元素,则整体向后移位 */ //索引值不能大于或等于元素个数,否则越界异常 yy.add(1,"da"); System.out.println("-----使用for循环遍历容器中的元素------"); boolean yang1 = yy.remove("yang"); System.out.println(yang1); //true for (int i=0;i<yy.size();i++){ System.out.println(yy.get(i)); // da jing } System.out.println("-----删除指定索引元素------"); //删除容器中指定索引位置元素,并且返回删除元素 String remove = yy.remove(1); System.out.println(remove); //jing for (int i=0;i<yy.size();i++){ System.out.println(yy.get(i)); //da } System.out.println("-----删除指定元素------"); //删除容器中指定元素(全部删除),返回boolean值,true为删除成功,false为容器中不存在指定元素 boolean yang2 = yy.remove("yang"); System.out.println(yang2); //false for (int i=0;i<yy.size();i++){ System.out.println(yy.get(i)); //da } System.out.println("-----替换元素------"); String ee = yy.set(0, "替换");//替换指定位置元素,并返回被替换的元素 System.out.println(ee);//da for (int i=0;i<yy.size();i++){ System.out.println(yy.get(i)); //替换 } System.out.println("-----清空容器------"); yy.clear(); //清空容器中所有元素,无返回值 System.out.println(yy.size());// 0 查看容器中元素的个数,无返回值,容器已被清空 System.out.println("-----判断容器是否为空------"); boolean hen = yy.add("hen"); boolean qiang = yy.add("qiang"); boolean empty = yy.isEmpty(); //如果容器为空返回true,否则返回false System.out.println(empty); for (int i=0;i<yy.size();i++){ System.out.println(yy.get(i)); //false hen qiang } System.out.println("-----判断容器中是否包含指定元素------"); boolean qiang1 = yy.contains("qiang"); //判断容器中是否包含指定元素,包含返回true,否则返回false //参数类型为object数据类型 boolean contains1 = yy.contains(1); boolean contains3 = yy.contains(3); System.out.println(qiang1); //true System.out.println(contains1);//false System.out.println(contains3);//false System.out.println("-----查找元素在容器中第一次或最后一次出现的位置(返回索引值)-----"); //添加一个重复元素 boolean hen1 = yy.add("hen"); //返回容器中元素第一次出现的索引,有返回当前索引值,无返回-1 int i1 = yy.indexOf("hen"); //返回元素在容器中第一次出现的元素 int i2 = yy.indexOf(2);//无索引元素时返回-1 int i3 = yy.lastIndexOf("hen"); //返回元素在容器中最后一次出现的位置 for (int i=0;i<yy.size();i++){ System.out.println(yy.get(i)); // hen qiang hen } System.out.println(i1);// 0 System.out.println(i2);// -1 System.out.println(i3);// 2 System.out.println("-----将单例集合转换为数组-----"); System.out.println("-----转换为Object[]数组-----"); //将ArrayList集合转换为Object[]数组 Object[] objects = yy.toArray(); //yy容器中的元素本质上仍然为Object类型,泛型不能改变真正的数据类型 for (int i = 0;i<objects.length; i++){ String str = (String) objects[i]; System.out.println(str); // hen qiang hen } System.out.println("-----转换为指定类型数组-----"); //将ArrayList集合转换为指定类型数组(根据泛型进行转换) //创建一个新数组接收集合中元素,为数组开辟指定长度空间,长度为集合的数据个数 System.out.println(yy.size());//3 String[] strings = yy.toArray(new String[yy.size()]); for (int i=0;i<strings.length;i++){ System.out.println(strings[i]); //hen qiang hen }
并集操作
System.out.println("-----容器的并集操作-----"); //创建两个ArrayList集合 ArrayList strings1 = new ArrayList(); boolean ji = strings1.add("ji"); boolean he = strings1.add("he"); System.out.println(ji);//true System.out.println(he);//true ArrayList strings2 = new ArrayList(); boolean jii = strings2.add("集"); boolean hee = strings2.add("合"); System.out.println(jii); //true System.out.println(hee); //true //创建一个空集合 ArrayList strings3 = new ArrayList(); //将strings1和strings2集合合并 boolean b = strings1.addAll(strings2); System.out.println(b); //true //不是集合不能直接转换为其它类型数组? 已经解决 for (String h:strings1){ System.out.println(h); //ji he 集 合 } //非空集合合并空集合,合并失败,返回false,仍为非空集合 //空集合合并非空集合,合并成功,返回true,空集合为非空集合所有元素 //合并时的先后顺序影响返回的Boolean值 boolean b1 = strings3.addAll(strings1); System.out.println(b1); for (int i=0;i<strings3.size();i++){ System.out.println(strings3.get(i)); //ji he 集 合 }
交集操作
System.out.println("-----容器的交集操作-----"); //创建三个ArrayList集合,两个非空集合,一个空集合 ArrayList vv = new ArrayList(); vv.add("a"); vv.add("b"); vv.add("c"); ArrayList bb = new ArrayList(); bb.add("b"); bb.add("c"); bb.add("d"); ArrayList nn = new ArrayList(); //非空集合求交集 boolean b2 = vv.retainAll(bb); //true System.out.println(b2); for (String k:vv){ System.out.println(k); //b c } //非空与空集合求交集 //交集返回true,成功,集合中无元素,为空集 boolean b3 = vv.retainAll(nn); System.out.println(b3); //true System.out.println(vv.size()); //0
差集操作
System.out.println("-----容器的差集操作-----"); ArrayList a1 = new ArrayList(); a1.add("a"); a1.add("b"); a1.add("c"); ArrayList aa1 = new ArrayList(); aa1.add("b"); aa1.add("c"); aa1.add("d"); //根据求差顺序不同,差集的结果不同 //求两个集合的差集:a1-aa1 System.out.println(a1.removeAll(aa1)); //true for (String d1:a1){ System.out.println(d1); //a } //求两个结合的差集:aa1-a1 System.out.println(aa1.removeAll(a1)); //false for (String h1:aa1){ System.out.println(h1); //b c d }
网赚站