JavaEE基础(十六)/集合
1、集合框架(去除ArrayList中重复字符串元素方式)
A:案例演示
- 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
思路:创建新集合方式
/**
* A:案例演示
* 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
* 思路:创建新集合方式
*/
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("b");
list.add("c");
list.add("c");
list.add("c");
list.add("c"); System.out.println(list);
ArrayList newList = getSingle(list);
System.out.println(newList);
} /*
* 去除重复
* 1,返回ArrayList
* 2,参数列表ArrayList
*/
public static ArrayList getSingle(ArrayList list) {
ArrayList newList = new ArrayList(); //创建一个新集合
Iterator it = list.iterator(); //获取迭代器
while(it.hasNext()) { //判断老集合中是否有元素
String temp = (String)it.next(); //将每一个元素临时记录住
if(!newList.contains(temp)) { //如果新集合中不包含该元素
newList.add(temp); //将该元素添加到新集合中
}
}
return newList; //将新集合返回
}
2、集合框架(去除ArrayList中重复自定义对象元素)
- A:案例演示
- 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)
- B:注意事项
- 重写equals()方法的
3、集合框架(LinkedList的特有功能)
- A:LinkedList类概述
- B:LinkedList类特有功能
- public void addFirst(E e)及addLast(E e)
- public E getFirst()及getLast()
- public E removeFirst()及public E removeLast()
- public E get(int index);
4、集合框架(栈和队列数据结构)
- 栈
- 先进后出
- 队列
- 先进先出
5、集合框架(用LinkedList模拟栈数据结构的集合并测试)
A:案例演示
- 需求:请用LinkedList模拟栈数据结构的集合,并测试
- 创建一个类将Linked中的方法封装
public class Stack {
private LinkedList list = new LinkedList(); //创建LinkedList对象 public void in(Object obj) {
list.addLast(obj); //封装addLast()方法
} public Object out() {
return list.removeLast(); //封装removeLast()方法
} public boolean isEmpty() {
return list.isEmpty(); //封装isEmpty()方法
}
}
6、集合框架(泛型概述和基本使用)
- A:泛型概述
- B:泛型好处
- 提高安全性(将运行期的错误转换到编译期)
- 省去强转的麻烦
- C:泛型基本使用
- <>中放的必须是引用数据类型
- D:泛型使用注意事项
- 前后的泛型必须一致,或者后面的泛型可以省略不写(1.7的新特性菱形泛型)
7、集合框架(ArrayList存储字符串和自定义对象并遍历泛型版)
- A:案例演示
- ArrayList存储字符串并遍历泛型版
8、集合框架(泛型的由来)
- A:案例演示
- 泛型的由来:通过Object转型问题引入
- 早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。
9、集合框架(泛型类的概述及使用)
- A:泛型类概述
- 把泛型定义在类上
- B:定义格式
- public class 类名<泛型类型1,…>
- C:注意事项
- 泛型类型必须是引用类型
- D:案例演示
- 泛型类的使用
10、集合框架(泛型方法的概述和使用)
- A:泛型方法概述
- 把泛型定义在方法上
- B:定义格式
- public <泛型类型> 返回类型 方法名(泛型类型 变量名)
- C:案例演示
- 泛型方法的使用
11、集合框架(泛型接口的概述和使用)
- A:泛型接口概述
- 把泛型定义在接口上
- B:定义格式
- public interface 接口名<泛型类型>
- C:案例演示
- 泛型接口的使用
12、集合框架(泛型高级之通配符)
- A:泛型通配符<?>
- 任意类型,如果没有明确,那么就是Object以及任意的Java类了
- B:? extends E
- 向下限定,E及其子类
- C:? super E
- 向上限定,E及其父类
13、集合框架(增强for的概述和使用)
- A:增强for概述
- 简化数组和Collection集合的遍历
- B:格式:
for(元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
- C:案例演示
- 数组,集合存储元素用增强for遍历
- D:好处
- 简化遍历
14、集合框架(ArrayList存储字符串和自定义对象并遍历增强for版)
A:案例演示
- ArrayList存储字符串并遍历增强for版
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d"); for(String s : list) {
System.out.println(s);
}
15、集合框架(三种迭代的能否删除)
- 普通for循环,可以删除,但是索引要--
- 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
- 增强for循环不能删除
16、集合框架(静态导入的概述和使用)
- A:静态导入概述
- B:格式:
- import static 包名….类名.方法名;
- 可以直接导入到方法的级别
- C:注意事项
- 方法必须是静态的,如果有多个同名的静态方法,容易不知道使用谁?这个时候要使用,必须加前缀。由此可见,意义不大,所以一般不用,但是要能看懂。
17、集合框架(可变参数的概述和使用)
- A:可变参数概述
- 定义方法的时候不知道该定义多少个参数
- B:格式
- 修饰符 返回值类型 方法名(数据类型… 变量名){}
- C:注意事项:
- 这里的变量其实是一个数组
- 如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个
18、集合框架(Arrays工具类的asList()方法的使用)
- A:案例演示
- Arrays工具类的asList()方法的使用
- Collection中toArray(T[] a)泛型版的集合转数组
19、集合框架(集合嵌套之ArrayList嵌套ArrayList)
- A:案例演示
- 集合嵌套之ArrayList嵌套ArrayList
JavaEE基础(十六)/集合的更多相关文章
- Bootstrap<基础十六> 导航元素
Bootstrap 提供的用于定义导航元素的一些选项.它们使用相同的标记和基类 .nav.Bootstrap 也提供了一个用于共享标记和状态的帮助器类.改变修饰的 class,可以在不同的样式间进行切 ...
- Java基础学习笔记十六 集合框架(二)
List List接口的特点: 它是一个元素存取有序的集合.例如,存元素的顺序是11.22.33.那么集合中,元素的存储就是按照11.22.33的顺序完成的. 它是一个带有索引的集合,通过索引就可以精 ...
- java基础(十六)----- equals()与hashCode()方法详解 —— 面试必问
本文将详解 equals()与hashCode()方法 概述 java.lang.Object类中有两个非常重要的方法: public boolean equals(Object obj) publi ...
- JavaEE基础(六)
1.面向对象(面向对象思想概述) A:面向过程思想概述 第一步 第二步 B:面向对象思想概述 找对象(第一步,第二步) C:举例 买煎饼果子 洗衣服 D:面向对象思想特点 a:是一种更符合我们思想习惯 ...
- WDA基础十六:ALV的颜色
这里介绍三种类型的颜色:列的背景色,单元格的背景色,单元格文本的颜色. 1.给ALV结构添加颜色控制字段: 三个字段都是同一类型:WDY_UIE_LIBRARY_ENUM_TYPE COL_BACKG ...
- C++学习基础十六-- 函数学习笔记
C++ Primer 第七章-函数学习笔记 一步一个脚印.循序渐进的学习. 一.参数传递 每次调用函数时,都会重新创建函数所有的形参,此时所传递的实参将会初始化对应的形参. 「如果形参是非引用类型,则 ...
- Bootstrap <基础二十六>进度条
Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet ...
- Bootstrap <基础十九>分页
Bootstrap 支持的分页特性.分页(Pagination),是一种无序列表,Bootstrap 像处理其他界面元素一样处理分页. 分页(Pagination) 下表列出了 Bootstrap 提 ...
- Bootstrap <基础十八>面包屑导航(Breadcrumbs)
面包屑导航(Breadcrumbs)是一种基于网站层次信息的显示方式.以博客为例,面包屑导航可以显示发布日期.类别或标签.它们表示当前页面在导航层次结构内的位置. Bootstrap 中的面包屑导航( ...
- Bootstrap<基础十五> 输入框组
Bootstrap 支持的另一个特性,输入框组.输入框组扩展自 表单控件.使用输入框组,可以很容易地向基于文本的输入框添加作为前缀和后缀的文本或按钮. 通过向输入域添加前缀和后缀的内容,您可以向用户输 ...
随机推荐
- 第三篇 Replication:事务复制-发布服务器
本篇文章是SQL Server Replication系列的第三篇,详细内容请参考原文. 发布服务器是所有复制数据的源头.每一个发布服务器上可以定义多个发布.每一个发布包含一组项目(项目在同一个数据库 ...
- mySQL 教程 第7章 存储过程和函数
存储过程和存储函数 MySQL的存储过程(stored procedure)和函数(stored function)统称为stored routines. 1. MySQL存储过程和函数的区别 函数只 ...
- 使用mysql 的docker
sudo docker run --name phpmyAdmin3 --link some-mysql:mysql -d phpmyadmin/phpmyadmin:latest -p 8080:8 ...
- Servlet 3特性:异步Servlet
解异步Servlet之前,让我们试着理解为什么需要它.假设我们有一个Servlet需要很多的时间来处理,类似下面的内容: LongRunningServlet.java package com.jou ...
- 用 CSS 做轮播图
对于用 css 实现一个轮播图的缘由,是那时候刚开始接触前端,完全还不懂 js.但是有一个项目(就是一个用来应付面试的作品)需要做一个轮播的效果,当时第一反应就是用 css3 自定义动画 -webki ...
- PostgreSQL 非持久化设置(Non-Durable Settings)
Durability is a database feature that guarantees the recording of committed transactions even if the ...
- Lintcode: Sort Colors II
Given an array of n objects with k different colors (numbered from 1 to k), sort them so that object ...
- SQL 数据库 子查询、主外键
子查询,又叫做嵌套查询. 将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询. 子查询有两种类型: 一种是只返回一个单值的子查询,这时它可以用在 ...
- SQL in查询
--sal为员工工资 select * from emp;
- java List 简单使用
Student类 class Student{ String name; String pwd; public Student(){} public Student(String name, Stri ...