Java学习 Day14 Collection List ArrayList
2021/5/20 20:55:44
本文主要是介绍Java学习 Day14 Collection List ArrayList,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.Collection 接口练习以及常用方法的使用 迭代器使用
package cn.tedu.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Iterator; /** * 本类用来测试Collection接口 */ public class TestCollection { public static void main(String[] args) { //1.创建Collection接口相关对象 //Collection c = new Collection();//报错,因为接口不能实例化 /**1.<Integer>是泛型,用来约束集合的元素类型,只能写引用类型,不能写基本类型*/ Collection<Integer> c = new ArrayList<Integer>(); //2.1测试常用方法--测试单个集合 c.add(100);//向集合中添加元素 c.add(200);//向集合中添加元素 c.add(300);//向集合中添加元素 c.add(400);//向集合中添加元素 c.add(500);//向集合中添加元素 System.out.println(c);//直接打印查看集合中的元素 //c.clear();//[],清空集合中的元素 System.out.println(c.contains(300));//true,判断集合中是否包含指定元素300 System.out.println(c.hashCode());//返回此集合对应的哈希码 System.out.println(c.isEmpty());//false,判断集合是否为空 System.out.println(c.remove(100));//true,移除集合中的指定元素100 System.out.println(c); System.out.println(c.size());//获取集合中元素的个数,类似数组的长度 System.out.println(c.equals(200));//false,判断集合对象与200是否相等 System.out.println(c.toArray());//[Ljava.lang.Object;@1b6d3586 System.out.println(Arrays.toString(c.toArray()));//把集合转为数组,查看数组元素需要使用工具类 //2.2测试集合间的操作 Collection<Integer> c2 = new ArrayList<Integer>(); c2.add(2);//给c2集合添加元素 c2.add(4);//给c2集合添加元素 c2.add(6);//给c2集合添加元素 System.out.println(c2); c.addAll(c2);//把c2集合中的元素添加到c集合中 System.out.println(c); System.out.println(c.contains(c2));//false,查看c集合是否包含一个叫c2的元素 System.out.println(c.containsAll(c2));//true,查看c集合是否包含c2集合的所有元素 System.out.println("——————————————————————————————————————————————"); System.out.println(c); System.out.println(c.retainAll(c2));//取c集合中属于c2集合的所有元素"交集" System.out.println(c); System.out.println("——————————————————————————————————————————————"); System.out.println(c.removeAll(c2));//true,移除c集合中输入c2集合中的所有元素 System.out.println(c); //2.3用来遍历/迭代集合中的元素 /**0.需要获取这个集合的迭代器 * 1.如何获取迭代器c.iterator() * 2.判断集合是否有下个元素it.hasNext() * 3.获取当前迭代到的元素it.next() * */ c.add(1); c.add(2); c.add(3); Iterator<Integer> it = c.iterator(); //通过iterator迭代器,循环获取集合中的所有元素 while(it.hasNext()){ //hasNext用来判断集合是否有下个集合,有就返回true,继续循环取值 Integer num = it.next();//next()用来获取迭代到的元素 System.out.println(num); } } }
2.List接口练习
package cn.tedu.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /**本类用于测试List接口*/ public class TestList { public static void main(String[] args) { //1.创建List接口多态对象,注意List是接口,不能实例化 List<String> list = new ArrayList<String>(); //2.测试继承自Collection接口中的方法 list.add("大力娃"); list.add("千顺娃"); list.add("头铁娃"); list.add("喷火娃"); list.add("喷水娃"); list.add("隐身娃"); list.add("小紫娃"); System.out.println(list);//查看集合中的元素 //list.clear(); //System.out.println(list);//[] System.out.println(list.remove("千顺娃")); System.out.println(list.size());//获取集合中元素的个数 System.out.println(list.hashCode());//获取集合对象的哈希码 System.out.println(list.isEmpty());//判断集合是否为空 System.out.println(list.contains("小紫娃"));//判断集合中是否有指定元素 System.out.println(list.equals("喷火娃"));//false,"喷火娃是否与集合list相同" System.out.println(Arrays.toString(list.toArray()));//将集合转为数组 //3.测试List接口特有的方法--都是可以根据索引进行操作的方式 list.add("小蝴蝶"); System.out.println(list); list.add(0,"蛇精");//在指定索引处添加元素,首个位置下标为0 System.out.println(list); System.out.println(list.get(2));//头铁娃,获取指定索引处的元素 System.out.println(list.indexOf("小蝴蝶")); list.add("小蝴蝶"); System.out.println(list.lastIndexOf("小蝴蝶")); System.out.println(list);//判断指定元素最后一次出现的位置 System.out.println(list.remove(5));//根据索引移除指定元素 System.out.println(list); System.out.println(list.set(7, "蝎子精"));//重置指定下标处的元素值 System.out.println(list); List<String> sublist = list.subList(3, 7);//截取子串,含头不含尾[3,7) System.out.println(sublist); //4.测试集合间的操作 List<String> list2 = new ArrayList<String>(); list2.add("1"); list2.add("2"); list2.add("3"); System.out.println(list.addAll(list2));//把list2追加到list集合的最后 System.out.println(list); System.out.println(list.addAll(1,list2));//把list2集合的所有元素添加到指定位置 System.out.println(list); System.out.println(list.containsAll(list2));//判断list集合是否包含list2集合中的所有元素 System.out.println(list.retainAll(list2));//保留list集合中属于list2集合中的所有元素,交集 System.out.println(list); System.out.println(list.removeAll(list2));//移除list集合中属于list2集合中的所有内容 System.out.println(list); } }
3.List迭代器练习
package cn.tedu.collection; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; /**本类用于测试List的迭代*/ public class TestList2 { public static void main(String[] args) { //1.创建List接口对象 List<String> list = new ArrayList<String>(); //2.向集合中添加元素 list.add("喜羊羊"); list.add("美羊羊"); list.add("费羊羊"); list.add("小肥羊"); list.add("烤全羊"); //3.测试集合的迭代 /**集合的迭代方式: * 1.for循环 * 2,增强for循环\高效for\foreach循环 * 3.iterator迭代器循环 * */ //方式一:因为List集合是有序的,元素是有下标的,所以可以根据下标进行遍历 //从哪开始 到哪结束 怎么变化 for (int i = 0; i < list.size(); i++) { //根据下标获取集合中的对应位置上的元素 String s = list.get(i); System.out.println(s); } System.out.println("****方式一****"); //12:3 3是要遍历的元素 2是遍历得到的元素的类型 1是遍历得到的元素的名字 for(String s :list){ System.out.println(s); } System.out.println("****方式二****"); //方式三:通过集合对象的迭代器进行迭代 /**1.获取指定集合的迭代器*/ Iterator<String> it = list.iterator(); /**由于我们不知道集合有多少元素,所以我们用while循环遍历集合所有元素*/ while (it.hasNext()){ System.out.println(it.next()); } System.out.println("****方式三****"); System.out.println(list); //方式四:listIterator()是List接口独有的 //listIterator是Iterator的子接口,可以拥有父接口的方法,还拥有自己独有方法(逆序遍历) ListIterator<String> it2 = list.listIterator(); while (it2.hasNext()){ System.out.println(it2.next()); } System.out.println("****方式四****"); } }
4.ArrayList测试练习
package cn.tedu.collection; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.ListIterator; /**本类用于测试ArrayList的相关内容*/ public class TestArrayList { public static void main(String[] args) { //1.创建对象 //底层会自动带我们创建数组存放对象,默认初始容量为10 ArrayList<Integer> arrayList = new ArrayList<Integer>(); //2.向集合添加元素 arrayList.add(100); arrayList.add(200); arrayList.add(300); arrayList.add(400); System.out.println(arrayList); //3.开始测试--单个集合 System.out.println(arrayList.contains(100));//判断是否包含元素100 System.out.println(arrayList.get(0));//根据下标获取指定元素 System.out.println(arrayList.indexOf(500));//获取指定元素下标 System.out.println(arrayList.set(2,200));//给集合的指定下标处添加元素 System.out.println(arrayList); System.out.println(arrayList.lastIndexOf(200));//获取指定元素最后一次出现的位置 System.out.println(arrayList.isEmpty());//判断集合是否为空 System.out.println(arrayList.remove(1));//移除指定下标处的元素 //arraylist.remove(300); /**这样写会报错:数组下标越界,index=300,size=4 * 这个方法是根据下标值来删除元素的,而本集合没有300的下标,所以数组下标越界 * 如果根据具体元素内容移除元素,需要先把int类型的数据转换成Integer数据类型*/ arrayList.add(300); System.out.println(arrayList); System.out.println(arrayList.remove(Integer.valueOf(300))); System.out.println(arrayList); System.out.println(arrayList.size());//获取集合中元素的个数 System.out.println(Arrays.toString(arrayList.toArray()));//集合转数组 //迭代方式 System.out.println("迭代方式一"); for (int i = 0; i < arrayList.size(); i++) { System.out.println(arrayList.get(i)); } System.out.println("迭代方式二"); for(Integer i:arrayList){ System.out.println(i); } System.out.println("迭代方式三"); Iterator<Integer> it = arrayList.iterator(); while (it.hasNext()){ System.out.println(it.next()); } System.out.println("迭代方式四"); ListIterator<Integer> it1 = arrayList.listIterator(); while (it1.hasNext()){ System.out.println(it1.next()); } } }
这篇关于Java学习 Day14 Collection List ArrayList的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25JAVA副业资料:新手入门及初级提升指南
- 2024-11-25Java副业资料:入门到实践的全面指南
- 2024-11-25Springboot应用的多环境打包项目实战
- 2024-11-25SpringBoot应用的生产发布项目实战入门教程
- 2024-11-25Viite多环境配置项目实战:新手入门教程
- 2024-11-25Vite多环境配置项目实战入门教程