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
时间: 2024-10-27 01:28:56

JavaEE基础(十六)/集合的相关文章

Bootstrap&lt;基础十六&gt; 导航元素

Bootstrap 提供的用于定义导航元素的一些选项.它们使用相同的标记和基类 .nav.Bootstrap 也提供了一个用于共享标记和状态的帮助器类.改变修饰的 class,可以在不同的样式间进行切换. 表格导航或标签 创建一个标签式的导航菜单: 以一个带有 class .nav 的无序列表开始. 添加 class .nav-tabs. 下面的实例演示了这点: <!DOCTYPE html> <html> <head> <title>Bootstrap 实

Java基础学习笔记十六 集合框架(二)

List List接口的特点: 它是一个元素存取有序的集合.例如,存元素的顺序是11.22.33.那么集合中,元素的存储就是按照11.22.33的顺序完成的. 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理). 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素. List接口的常用子类有: ArrayList集合 LinkedList集合 List接口的特有方法(带索引的方法)1.增加元素方法 add(Object e):向集合末尾

JavaEE基础(六)

1.面向对象(面向对象思想概述) A:面向过程思想概述 第一步 第二步 B:面向对象思想概述 找对象(第一步,第二步) C:举例 买煎饼果子 洗衣服 D:面向对象思想特点 a:是一种更符合我们思想习惯的思想 b:可以将复杂的事情简单化 c:将我们从执行者变成了指挥者 角色发生了转换 E:面向对象开发 就是不断的创建对象,使用对象,指挥对象做事情. F:面向对象设计 其实就是在管理和维护对象之间的关系. G:面向对象特征 封装(encapsulation) 继承(inheritance) 多态(p

Java基础十六

1 Set接口概述 一个不包含重复元素的Collection. 2 HashSet类 2.1 HashSet类的概述 它不保证Set的迭代顺序,特别是它不保证该顺序恒久不变. 底层数据结构是哈希表. 添加功能依赖于两个方法: public int hashCode() public boolean equals(Object obj) 2.2 HashSet的应用 应用: package com.xuweiwei; import java.util.HashSet; import java.ut

linux基础十六

1.交换分区     linux内存使用机制:/proc/sys/vm/swapiness      2.查看内存空间使用状态     cat /proc/meminfo     free         -m 显示结果以MB为单位         -g 显示结果以GB为单位          3.dd 指定大小的块创建文件     格式1:dd if=input_file of=output_file     格式2:dd if=input_file of=output_file bs=块大小

cocos creator基础-(十六)自定义的帧动画播放组件(需要优化)

1: 掌握帧动画的原理; 2: 完成帧动画组件的编写; 3: 代码中使用帧动画组件; 通过拖拽图片进行播放,比引擎的制作方式方便,但动画不是很灵活 帧动画播放组件 1: creator播放帧动画需要通过动画编辑器去制作; 2: 为了方便控制和使用加入帧动画代码播放组件; 3: 属性设置: sprite_frames: 帧动画所用到的所有的帧; duration: 每帧的时间间隔; loop: 是否循环播放; play_onload: 是否加载组件的时候播放; 4: 接口设置: play_once

Bootstrap &lt;基础二十六&gt;进度条

Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet Explorer 9 及之前的版本和旧版的 Firefox 不支持该特性,Opera 12 不支持动画. 默认的进度条 创建一个基本的进度条的步骤如下: 添加一个带有 class .progress 的 <div>. 接着,在上面的 <div> 内,添加一个带有 class .prog

Bootstrap &lt;基础十九&gt;分页

Bootstrap 支持的分页特性.分页(Pagination),是一种无序列表,Bootstrap 像处理其他界面元素一样处理分页. 分页(Pagination) 下表列出了 Bootstrap 提供的处理分页的 class. Class 描述 示例代码 .pagination 添加该 class 来在页面上显示分页. <ul class="pagination"> <li><a href="#">«</a><

【WPF学习】第三十六章 样式基础

原文:[WPF学习]第三十六章 样式基础 前面三章介绍了WPF资源系统,使用资源可在一个地方定义对象而在整个标记中重用他们.尽管可使用资源存储各种对象,但使用资源最常见的原因之一是通过他们的保存样式. 样式是可应用于元素的属性值集合.WPF样式系统与HTML标记中的层叠样式表(Cascading Style Sheet,CSS)标准担当类似的角色.与CSS类似,通过WPF样式可定义通用的格式化特性集合,并且为了保证一致性,在整个应用程序中应用他们.与CSS一样,WPF样式也能够自动工作,指定具体

Objective-C(十六、内存管理,自动释放池,ARC,强指针,弱指针,方法族)——iOS开发基础

结合之前的学习笔记以及参考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结.知识点一直在变,只是作为参考,以苹果官方文档为准~ 十六.内存管理相关知识(二) 1.autorelease,自动释放机制 - (instancetype)autorelease; (1)自动释放池的创建 iOS5.0之前 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //进行一系列操作 //此处不可以使用