0


【大数据基础之java单列集合】

🍬博主介绍
👨‍🎓 博主主页:喵的主页
✨主攻领域:【大数据】【java】【python】【面试分析】

单列集合


  1. 单列集合介绍

集合是用来存储多个同类型数据的容器, 它的长度是可以变化的.

  1. Collection集合1. 集合的定义publicstaticvoidmain(String[] args){// 注意: Collection 是顶层接口,不能进行数据实例化,所以我们想要获取其对象,需要使用子类实例化后赋值给父类变量// 单列集合的定义格式:// 集合类型<泛型> 集合名称 = new 集合类型<泛型>();// 定义集合时,如果在前边书写了泛型, new后边的类型就可以省略泛型,前后泛型必须一致Collection<String> list =newArrayList<>();//添加数据,可以使用add API进行添加数据 list.add("hello"); list.add("world"); list.add("java");// 在集合中重写了toString 可以直接打印集合中的数据内容System.out.println(list);// [hello, world, java]}1. 集合的成员方法publicstaticvoidmain(String[] args){// 定义单列集合对象Collection<String> list =newArrayList<>();//添加数据,可以使用add API进行添加数据//1.public boolean add(E e) 添加元素. list.add("hello"); list.add("world"); list.add("java");//2.public boolean remove(Object obj) 从集合中移除指定的元素.// 删除成功,返回true 如果删除不成功返回falseboolean h = list.remove("hello");System.out.println(h);//3.public void clear() 清空集合对象// list.clear();//4.public boolean contains(Object obj) 判断集合中是否包含指定的元素// 如果包含,返回true, 如果不包含,返回falseSystem.out.println(list.contains("hello"));System.out.println(list.contains("传智"));//5.public boolean isEmpty() 判断集合是否为空System.out.println(list.isEmpty());//6.public int size() 获取集合的长度, 即集合中元素的个数System.out.println(list.size());// 获取字符串长度length()// 获取数组长度 length// 在集合中重写了toString 可以直接打印集合中的数据内容System.out.println(list);}1. 集合遍历publicstaticvoidmain(String[] args){// 创建Collection对象Collection<String> list =newArrayList<>();//添加数据,可以使用add API进行添加数据 list.add("hello"); list.add("world"); list.add("java");// 遍历 Collection对象不能通过下标获取元素数据// 方法一: 使用迭代器对集合进行迭代//1.构造迭代器Iterator<String> itor = list.iterator();//2.判断迭代器中是否存在下一个元素,如果存在,则获取,如果不存在,终止循环 hasnext// 分析: 我们使用哪种方式循环?? while 因为循环次数不定// hasNext()判断集合中是否存在下一个值// next()获取集合中的下一个值while(itor.hasNext()){System.out.println(itor.next());}// 方法二: 增强for foreach// 格式: for(临时变量类型 临时变量 : 集合或者数组){}// 增强for 会以此从集合汇总获取每一个值,并赋值给临时变量for(String s: list){System.out.println(s);}}4.集合储存对象数据publicstaticvoidmain(String[] args){//1. 创建集合对象Collection<Student> stuList =newArrayList<>();//2.向集合对象中添加数据 stuList.add(newStudent("小明",12)); stuList.add(newStudent("小方",13)); stuList.add(newStudent("小莉",15));//3.输出集合对象的值System.out.println(stuList);// 4.遍历集合for(Student s : stuList){System.out.println(s);}}

  2. List集合List的遍历publicstaticvoidmain(String[] args){// 1.创建list集合对象ArrayList<Student> stuList =newArrayList<>();// 2.向list集合对象中添加学生信息 stuList.add(newStudent("小明",12)); stuList.add(0,newStudent("小方",14)); stuList.add(newStudent("小红",15));// 3.打印集合对象// System.out.println(stuList);// 4.遍历集合对象// 方法一: 普通迭代器Iterator<Student> itor = stuList.iterator();// while (itor.hasNext()){// System.out.println(itor.next());// }//迭代器的快捷键是 ititwhile(itor.hasNext()){Student s = itor.next();System.out.println(s);}System.out.println("---------------");// 方法二: 列表迭代器ListIterator<Student> sitor = stuList.listIterator();while(sitor.hasNext()){Student s = sitor.next();System.out.println(s);}System.out.println("---------------");// 方法三: 增强for//增强for 的快捷键是 iterfor(Student s : stuList){System.out.println(s);}System.out.println("---------------");// 方法四:普通forfor(int i =0; i < stuList.size(); i++){System.out.println(stuList.get(i));}}1. list的正向遍历和逆向遍历publicstaticvoidmain(String[] args){// 创建list对象ArrayList<String> list =newArrayList<>();// 添加数据 list.add("hello"); list.add("world"); list.add("java");// 打印列表对象System.out.println(list);//构造列表迭代器ListIterator<String> sitor = list.listIterator();// 正向遍历while(sitor.hasNext()){String s = sitor.next();System.out.println(s);}// 逆向遍历while(sitor.hasPrevious()){String s = sitor.previous();System.out.println(s);}}1. 并发修改异常publicstaticvoidmain(String[] args){// 创建list对象ArrayList<String> list =newArrayList<>();// 添加数据 list.add("hello"); list.add("world"); list.add("java");// 创建迭代器// Iterator<String> itor = list.iterator();//遍历集合// ConcurrentModificationException// 并发修改异常, 在我们使用迭代器的过程中不能修改迭代器控制的集合// while (itor.hasNext()) {// String s = itor.next();// if (s.equals("world")){// list.add("javaEE");// }// }// 方法一: 使用listIteratorListIterator<String> sitor = list.listIterator();while(sitor.hasNext()){String s = sitor.next();if(s.equals("world")){//ConcurrentModificationExceptio// 在此处使用集合的add方法依然会报并发修改异常// list.add("javaEE");//如果想要解决这个问题需要使用listIterator中的add方法 sitor.add("javaEE");}}// 方法二: 直接使用普通for循环,不构造迭代器for(int i =0; i < list.size(); i++){if(list.get(i).equals("world")){ list.add("javaEE");}}System.out.println(list);// 注意:增强for本质上也是使用了迭代器,所以也存在并发修改异常// for (String s : list) {// // ConcurrentModificationException// if (s.equals("world")){// list.add("javaEE");// }// }}

  3. 增强for

  4. 常见的数据结构常用的数据结构1. 栈: 先进后出, 后进先出2. 队列: 先进先出, 后进后出3. 数组: 改和查效率高, 增删效率低4. 链表: 增删效率高, 改查效率低

  5. List集合的子类

  6. Set集合set集合保存对象publicstaticvoidmain(String[] args){// 创建hashset对象HashSet<Student> hs =newHashSet<>();// 添加数据 hs.add(newStudent("小明",15)); hs.add(newStudent("小方",14)); hs.add(newStudent("小黄",16)); hs.add(newStudent("小黄",16));// 遍历集合将结果打印到控制台上// 使用功能hashset保存对象,如果重写hashcode方法,同样成员变量的对象将被去重,否则不去重Iterator<Student> itor = hs.iterator();while(itor.hasNext()){Student s = itor.next();System.out.println(s);}}


本文转载自: https://blog.csdn.net/Chad_it/article/details/127444730
版权归原作者 淼淼_喵 所有, 如有侵权,请联系我们删除。

“【大数据基础之java单列集合】”的评论:

还没有评论