day15总结

1:对象数组(掌握)

(1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。

(2)案例:

用数组存储5个学生对象,并遍历数组。

2:集合(Collection)(掌握)

(1)集合的由来?

我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组

而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用。

(2)集合和数组的区别?

A:长度区别

数组固定

集合可变

B:内容区别

数组可以是基本类型,也可以是引用类型

集合只能是引用类型

C:元素内容

数组只能存储同一种类型

集合可以存储不同类型(其实集合一般存储的也是同一种类型)

(3)集合的继承体系结构?

由于需求不同,Java就提供了不同的集合类。这多个集合类的数据结构不同,但是它们都是要提供存储和遍历功能的,

我们把它们的共性不断的向上提取,最终就形成了集合的继承体系结构图。

Collection

|--List

|--ArrayList

|--Vector

|--LinkedList

|--Set

|--HashSet

|--TreeSet

(4)Collection的功能概述(自己补齐)

A:添加功能

B:删除功能

C:判断功能

D:获取功能

E:长度功能

F:交集(了解)

G:把集合转数组(了解)

(5)Collection集合的遍历

A:把集合转数组(了解)

B:迭代器(集合专用方式)

(6)迭代器

A:是集合的获取元素的方式。

B:是依赖于集合而存在的。

C:迭代器的原理和源码。

a:为什么定义为了一个接口而不是实现类?

b:看了看迭代器的内部类实现。

(7)Collection集合的案例(遍历方式 迭代器)

集合的操作步骤:

A:创建集合对象

B:创建元素对象

C:把元素添加到集合

D:遍历集合

A:存储字符串并遍历

import java.util.Collection;

import java.util.ArrayList;

import java.util.Iterator;

public class CollectionDemo {

public static void main(String[] args) {

//创建集合对象

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:存储自定义对象并遍历

public class Student {

private String name;

private int age;

public Student(){}

public Student(String name,int age) {

this.name = name;

this.age = age;

}

//getXxx()/setXxx()

}

import java.util.Collection;

import java.util.ArrayList;

import java.util.Iterator;

public class StudentDemo {

public static void main(String[] args) {

//创建集合对象

Collection c = new ArrayList();

//创建学生对象

Student s1 = new Student("林青霞",27);

Student s2 = new Student("风清扬",30);

Student s3 = new Student("刘意",30);

Student s4 = new Student("武鑫",25);

Student s5 = new Student("刘晓曲",16);

//添加元素

c.add(s1);

c.add(s2);

c.add(s3);

c.add(s4);

c.add(s5);

//遍历集合

Iterator it = c.iterator();

while(it.hasNext()) {

Student s = (Student)it.next();

System.out.println(s.getName()+"---"+s.getAge());

}

}

}

3:集合(List)(掌握)

(1)List是Collection的子接口

特点:有序(存储顺序和取出顺序一致),可重复。

(2)List的特有功能:(自己补齐)

A:添加功能

B:删除功能

C:获取功能

D:迭代器功能

E:修改功能

(3)List集合的特有遍历功能

A:由size()和get()结合。

B:代码演示

//创建集合对象

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);

}

System.out.println("----------");

for(int x=0; x<list.size(); x++) {

String s =(String) list.get(x);

System.out.println(s);

}

(4)列表迭代器的特有功能;(了解)

可以逆向遍历,但是要先正向遍历,所以无意义,基本不使用。

(5)并发修改异常(面试题)

A:出现的现象

迭代器遍历集合,集合修改集合元素

B:原因

迭代器是依赖于集合的,而集合的改变迭代器并不知道。

C:解决方案

a:迭代器遍历,迭代器修改(ListIterator)

元素添加在刚才迭代的位置

b:集合遍历,集合修改(size()和get())

元素添加在集合的末尾

(6)常见数据结构

A:栈 先进后出

B:队列 先进先出

C:数组 查询快,增删慢

D:链表 查询慢,增删快

(7)List的子类特点(面试题)

ArrayList

底层数据结构是数组,查询快,增删慢。

线程不安全,效率高。

Vector

底层数据结构是数组,查询快,增删慢。

线程安全,效率低。

LinkedList

底层数据结构是链表,查询慢,增删快。

线程不安全,效率高。

到底使用谁呢?看需求?

分析:

要安全吗?

要:Vector(即使要,也不使用这个,后面再说)

不要:ArrayList或者LinkedList

查询多;ArrayList

增删多:LinkedList

什么都不知道,就用ArrayList。

(8)List集合的案例(遍历方式 迭代器和普通for)

A:存储字符串并遍历

B:存储自定义对象并遍历

时间: 2024-10-01 21:45:29

day15总结的相关文章

python开发学习-day15(前端部分知识、web框架、Django创建项目)

s12-20160430-day15 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin

DAY15 NSD CISCO

实验01:静态NAT的应用 实验目标:通过静态NAT实现内网与外网之间的通信 实验环境: 打开cisco packet tracer 软件,实验拓扑图如下: 实验步骤: 一. 打开cisco packet tracer 软件,添加两台路由器.两台交换机和四台主机.按照实验拓扑图用交叉线和直通线进行连接,并为主机配置ip地址和网关. 二. 配置路由器端口地址 1. Router1全局: Int f0/0 Ip address 192.168.100.254 255.255.255.0 No shu

python_way day15 HTML-DAY2

python_way day15 HTML-DAY2 html-css回顾 javascript 一.html-css回顾 1.input与+,-号的写法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .sp{ /*inline-block签默认边

Python之路,Day15 - Django适当进阶篇

Python之路,Day15 - Django适当进阶篇 本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣和效率最高的,今天就来基于下面的需求来继续学习Django 项目需求: 1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个班级至少包含一个或多个讲师4.一个学员要有状态转化的过程 ,比如未报名前,报名后,毕业老学员5.客户要有咨询纪录, 后续的定期跟踪纪录也要保存6

##DAY15——UICollectionView

DAY15——UICollectionView 创建UICollectionView //创建一个布局对象,采用系统布局类UICollectionViewFlowLayout UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; //设置滑动方向 layout.scrollDirection = UICollectionViewScrollDirectionVertical; CGFloat

前端基础之JQuery - day15

写在前面 上课第15天,打卡: 张国臂掖,以通西域: ########### # 课上简书 # ########## http://jquery.cuishifeng.cn/index.html JQuery对象: Jquery.方法 $.方法 # Jquery和$是完全一样的 JQuery的方法只能JQuery对象调用 JS的方法只能JS使用 变量命名: JS var $variable = jQuery 对象 JQuery var variable = DOM 对象 JQuery语法:$(s

黑马day15 仿网盘案例

项目介绍: 本项目主要完成文件的上传以及下载的功能的一个综合案例. 1.搭建环境... 导入jar包以及开发的工具类... jar包: 提供俩个工具类..一个是IOUtils主要提供了输出流和输入流的对接,和关闭流资源的函数 一个是提供数据源的工具类DataSourceUtils IOUtils: package cn.itheima.utils; import java.io.IOException; import java.io.InputStream; import java.io.Out

学习日常笔记&lt;day15&gt;mysql基础

1.数据库入门 1.1数据库软件 数据库:俗称数据的仓库,方便管理数据的软件(或程序) 1.2市面上数据库软件 Oracle,甲骨文公司的产品. 当前最流行应用最广泛的数据库软件.和java语言兼容非常好. 适合中大型,中大应用. SQL Server: 是微软公司的产品.window平台应用非常广泛.和c#,net平台兼容非常好. DB2: IBM公司的产品.IBM服务器--> UNIX -> DB2- > Websphere MySQL: 开源组织的产品.甲骨文公司的产品.免费!!!

毕向东Java视频学习笔记【Day15 字符串+StringBuffer+StringBuilder类基础】

.01 string类特点 String类的特点: 字符串对象一旦被初始化就不可以被改变. 面试题 String s = "abc"; String s1 = NEW String ("abc"); System.out.println(s==s1); 输出false表示这两个字符串地址是不是相等的,为什么? 答:第一个是在字符串常量池中创建了abc字符串并且赋给了引用型变量s 第二个是在堆内存中用new的方式创建了string对象 并且在new的时候接受了一个字符

python—day15

软件目录规范.logging日志模块.json&pikcle.os模块   软件目录规范: 什么是包,为什么要用包: packgae就是一个包含有__init__.py文件的文件夹,所以我们用backage是为了将文件.模块组织起来. logging模块: 日志级别: DEBUG:10 INFO:20 WARING:30 ERROR:40 CRITICAL:50 logging的四个重要对象: logger:产生日志的对象: filter:过滤日志的对象(不常用) handler:接受日志然后控