首页 > 编程语言 >java-数据和集合 and 数据结构

java-数据和集合 and 数据结构

时间:2023-12-10 11:22:22浏览次数:42  
标签:遍历 java 迭代 Collection add Student 集合 数据结构

1: 数组:
基本类型的数组:int[]
引用类型的数组:Student[]
2:Collection集合(掌握)
(1)集合的由来
我们学习的是面向对象的语言,而面向对象的语言常见的操作就是操作对象。
为了方便我们对多个对象进行操作,我们可以使用对象数组来进行。
但是对象数组的长度是固定的,不适应变化的需求,所以,java就提供了集合
供我们来使用。
(2)集合的特点
A:长度可变
B:只能存储引用类型
C:可以存储多种引用类型
(3)数组和集合的区别
A:数组的长度固定;数组可以存储基本类型,也可以存储引用类型;数组存储的是同一种数据类型的元素
B:集合的长度可变;集合只能存储引用类型;集合可以存储多种引用类型。
(4)集合的继承体系结构
多种集合类的数据结构不同,但是功能相似,所以,我们不断的向上抽取,就形成了集合的继承体系结构
Collection
|--List
|--ArrayList
|--Vector
|--LinkedList
|--Set
|--HashSet
|--TreeSet

	面对这样的继承体系结构,我们该学习谁,使用谁呢?
		学习:顶层,因为顶层定义的是共性功能。
		使用:底层,因为底层才是具体的实现类,并且具有最多的功能。
(5)Collection的功能概述:(自己补齐中文意思)
	A:添加功能
		add(Object obj)
		addAll(Collection c)
	B:移除功能
		remove(Object obj)
		removeAll(Collection c)
		clear()
	C:判断功能
		contains(Object obj)
		containsAll(Collection c)
		isEmpty()
	D:获取功能
		iterator()
		size()
	E:交集功能
		retainAll(Collection c)
	F:转数组功能
		toArray()

	注意:
		所有带all的不用掌握
		交集和转数组不用掌握
(6)迭代器的使用
	A:迭代器的使用
		依赖于集合存在,本身有两个方法
		a:hasNext()
		b:next()
	B:集合的使用步骤
		a:创建集合对象
		b:创建元素对象
		c:把元素添加到集合中
		d:遍历集合
			通过集合对象获取迭代器对象
			通过迭代器对象的hasNext()方法判断是否有元素
			通过迭代器对象的next()方法获取元素,并移动到下一个位置
	C:迭代器的原理
		定义为了接口,由具体的集合类通过内部类的方式提供实现。
(7)案例:
	A:Collection存储字符串并遍历
		Collection c = new ArrayList();

		c.add("hello");
		c.add("world");
		c.add("java");

		Iterator it = c.iterator();
		while(it.hasNext()) {
			String s = (String) it.next();
			System.out.println(s);
		}
	B:Collection存储自定义对象并遍历
		Collection c = new ArrayList();

		Student s1 = new Student("林青霞",18);
		Student s2 = new Student("风清扬",21);
		Student s3 = new Student("赵雅芝",60);

		c.add(s1);
		c.add(s2);
		c.add(s3);

		Iterator it = c.iterator();
		while(it.hasNext()) {
			Student s = (Student) it.next();
			System.out.println(s.getName()+"---"+s.getAge());
		}

3:List集合(掌握)
(1)List集合的特点
元素有序(存储顺序和取出顺序一致),可重复。
(2)List集合的特有功能:(自己补齐中文意思)
A:add(int index,Object obj)
B:remove(int index)
C:get(int index)
D:set(int index,Object obj)
E:listIterator()
(3)List集合的特有遍历功能
通过size()和get()方法结合即可
(4)ListIterator的概述和使用(理解)
A:ListIterator是Iterator的子接口
B:ListIterator可以逆向遍历,但是意义不大。
因为它需要先正向遍历。
C:并发修改异常产生的原因和解决方案
a:原因
用迭代器遍历集合的时候,用集合去修改了集合的元素。
b:解决方案
用普通for遍历,并用集合去添加元素
用列表迭代器遍历,并用列表迭代器去添加元素
(5)案例:
A:List存储字符串并遍历
List list = new ArrayList();

		list.add("hello");
		list.add("world");
		list.add("java");

		Iterator it = list.iterator();
		while(it.hasNext()) {
			String s = (String) it.next();
			System.out.println(s);
		}

		for(int x=0; x<list.size(); x++) {
			String s = (String) list.get(x);
			System.out.println(s);
		}
	B:List存储自定义对象并遍历(自己补齐)

标签:遍历,java,迭代,Collection,add,Student,集合,数据结构
From: https://www.cnblogs.com/qlshao/p/17892304.html

相关文章

  • Java入门项目--蚂蚁爱购
    ​ 简介这是一个靠谱的Java入门项目实战,名字叫蚂蚁爱购。从零开发项目,视频加文档,十天就能学会开发JavaWeb项目,教程路线是:搭建环境=>安装软件=>创建项目=>添加依赖和配置=>通过表生成代码=>编写Java代码=>代码自测=>前后端联调=>准备找工作。学完即可成为合格的Java开......
  • JAVA BLOG-3
    第一部分:对之前发布的第三阶段PTA题目集(1)前言:总结之前所涉及到的知识点、题量、难度等情况:知识点:第三阶段的知识点与前两个阶段相比多了很多,比如说多次接口的使用,Map与Set的使用,Arraylist排序的使用,正则表达式的使用,栈的实现及基本操作等等,与之前的简单的继承多态相比,知识点......
  • 【Java】删除List中的几行数据
    方法一: list.subList(from,to).clear();(注意不要超出list的长度范围)1List<Integer>list=newArrayList<>();2list.add(1);3list.add(2);4list.add(3);5list.add(4);6list.subList(0,2).clear();7System.out.println("list=>"+list);......
  • Java Swing
    Swing在Java中的使用:创建图形用户界面(GUI)的步骤和技巧Swing是Java的一个图形用户界面(GUI)工具包,它提供了创建窗口、对话框、按钮等GUI元素所需要的类和方法。下面我们将介绍Swing的基本使用方法,包括创建窗口、添加组件、事件处理等。一、创建窗口创建Swing应用程序的第一步是创......
  • Java之包装类的算法小题的练习
     算法小题练习一:需求:键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超过200为止。代码示例:publicclassTest1{publicstaticvoidmain(String[]args){/*键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超......
  • JAVA - Collections
    publicclassTest1{publicstaticvoidmain(String[]args){Students=newStudent("张三",18,"唱歌");Students1=newStudent("李四",27,"跳舞");Students2=newStudent("王五",26,&q......
  • JavaScript 学习
    变量声明和数据类型varname='John';letage=25;constPI=3.14;//数据类型:字符串、数字、布尔值//var声明(ES5),let和const声明(ES6)var、let和const是JavaScript中声明变量的关键字。var在ES5中使用,let和const在ES6中引入,具有块级作用域,能避免变量提升的问题......
  • Java打印进度条
    packagecom.shuwei.dai.utils.bitmap;importjava.util.Collections;publicclassStepProgressBarExample{publicstaticvoidmain(String[]args){simulateStep("Step1:Initializing",10);simulateStep("Step2:Download......
  • java.Text.ParseException:Unparseable date:“undefined 00:00:00“
    request.getParameter()获取的日期要toString一下再parse,否则就会报这个异常。if(page.getParams().get("startTime")!=null){Datestart=DateParser.parse(page.getParams().get("startTime").toString(),true);page.getParams(......
  • Java 中日期String类型与Date类型相互转化
    JavaString类型转换成Date日期类型插入数据库时,存入当前日期,需要格式转换importjava.text.SimpleDateFormat;formatter=newSimpleDateFormat("yyyy-MM-dd");Stringdate=formatter.format(newDate());//格式化数据,取当前时间结果为2014-10-30String格式的数据转化成......