当前位置: 首页 > news >正文

长安网站建设制作做 理财网站有哪些

长安网站建设制作,做 理财网站有哪些,个人养老金制度将落地,如何在自己的电脑建设网站目录 实现一个通用的顺序表 总结 包装类 装箱 / 装包 和 拆箱 / 拆包 ArrayList 与 顺序表 ArrayList基础功能演示 add 和 addAll #xff0c;添加元素功能 ArrayList的扩容机制 来看一下#xff0c;下面的代码是否存在缺陷 模拟实现 ArrayList add 功能 add ind…目录 实现一个通用的顺序表 总结 包装类 装箱 / 装包 和 拆箱 / 拆包 ArrayList 与 顺序表 ArrayList基础功能演示 add 和 addAll 添加元素功能 ArrayList的扩容机制 来看一下下面的代码是否存在缺陷 模拟实现 ArrayList add 功能 add index  add 两种用法的效果图 remove 功能 - 删除删除遇到的第一个 指定元素 remove 功能 - 删除 index 位置元素 get - 获取指定下标位置元素 set - 将指定的下标的元素置换为 指定的数据 clear - 清空 contains - 判断 指定元素 是否在线性表中 indexOf 和 lastIndexOf 直接搬原码注意indexOf 是前面写了的只要把private改成public就行直接搬lastIndexOf 总结 ArrayList 实践案例 - 扑克牌 发牌 / 揭牌 实现一个通用的顺序表 顺序表的功能不是重点我们在这里只是粗略实现一下顺序表的功能重点在泛型 准备工作相信大家都看得懂。 class MyArrayList{private int[] elem;// 建立数组private int usedSize;// 有效元素个数// 构造方法public MyArrayList(){this.elem new int[10];// 默认数组初始容量为 10}// 添加元素public void add(int val){this.elem[usedSize] val;}// 得到指定位置的元素public int get(int pos){return this.elem[pos];} } public class Test { } 但是这个代码并不通用只能存储一种数据类型int。 ​ ​ ​ 总结 1. 泛型是作用在编译期间的一种机制即运行期间没有泛型的概念。 2. 泛型代码在运行期间就是我们上面提到的利用 Object 达到的效果这里不是很准确以后会做说明。 3. 泛型是为了解决某些容器、算法等代码的通用性而引入并且能在编译期间做类型检查。 4. 泛型利用的是 Object 是所有类的祖先类并且父类的引用可以指向子类对象的特定而工作。 5. 泛型是一种编译期间的机制即 MyArrayList 和 MyArrayList 在运行期间是一个类型。 6. 泛型是 java 中的一种合法语法标志就是尖括号 包装类 Object 引用可以指向任意类型的对象但有例外出现了8 种基本数据类型不是对象那岂不是刚才的泛型机制要 失效了   实际上也确实如此为了解决这个问题java 引入了一类特殊的类即这 8 种基本数据类型的包装类在使用过程 中会将类似 int 这样的值包装到一个对象中去。 基本数据类型和包装类直接的对应关系 基本就是类型的首字母大写除了 Integer 和 Character ​ 包装类存在的意义 当我们需要将某种类型的数据转换成其它的数据类型时需要通过某种来达到目的。 而包装类就是这些功能的集大成者包含多种类型转换方法和其他功能。 实战讲一个字符串类型转换成整形数据 装箱 / 装包 和 拆箱 / 拆包 装箱 / 装包 就是把简单类型数据 变为 包装类类型数据拆箱 / 拆包 就是把包装类类型数据 变为 简单类型数据 面试题 ArrayList 与 顺序表 铺垫 1. ArrayList实现了RandomAccess接口表明ArrayList支持随机访问 2. ArrayList实现了Cloneable接口表明ArrayList是可以clone的 3. ArrayList实现了Serializable接口表明ArrayList是支持序列化的(序列化把一个对象转换成字符串) 4. 和Vector不同ArrayList不是线程安全的在单线程下可以使用在多线程中可以选择Vector或者 CopyOnWriteArrayList 5. ArrayList底层是一段连续的空间并且可以动态扩容是一个动态类型的顺序表  在使用任何一个 idea编译器写好的类的时候一定要先去看一下这个类的构造方法 ArrayList的三种打印方式 迭代器打印 ArrayList基础功能演示 add 和 addAll 添加元素功能 public class TestDemo {public static void main(String[] args) {ArrayListString list new ArrayList();list.add(a);list.add(b);list.add(c);// 添加List元素System.out.println(list);System.out.println();list.add(1,g);// 在List指定位置中添加元素System.out.println(list);System.out.println();ListString list1 new ArrayList();list1.add(x);list1.add(y);list.addAll(list1);// 将一个list1 整体添加 list中System.out.println(list);} }remove - 删除  1、指定下标的元素返回值为删除元素 内部实现 2、输出从左往右 第一个指定数据 - 返回值为布尔类型 内部实现 get - 获取 获取指定下标位置的元素 内部实现 set - 赋值 - 将指定下标元素设置为指定数据可以理解为更新指定下标元素 - 返回值为旧元素 内部实现 clear - 清空 - 清空顺序表中的元素 - 无返回值 内部实现 contains - 判断  - 判断 指定数据 是否在线性表中 - 返回值为布尔类型 内部实现 indexOf   - 返回指定数据在线性表中第一次出现的位置所对应的下标 内部实现 lastIndexOf  - 返回 在线性表中最后一个 与指定元素相等 的 元素下标 内部实现 subList - 截取部分 - 截取部分线性表数据 - 返回值 为 List E 类型 内部实现 ArrayList的扩容机制 来看一下下面的代码是否存在缺陷 public static void main(String[] args) {ListInteger list new ArrayList();for (int i 0; i 100; i) {list.add(i);} }首先我们认为这个代码是没有缺陷的但是因为ArrayList 底层的数组是有一定大小的那么存放数组的过程中一定会涉及到扩容 前面我们讲到ArrayList 有三种方法现在使用的是不带参数的也就是说ArrayList 底层的数组初始容量为零。 那么第一个问题就出现了 既然数组的容量是为零那么它怎么还可以存入数据 第二个问题: 假设数组初始化容量为10超过了10就需要扩容。而且扩容操作时在代码底层执行是看不见的也就是说ArrayList在存储数据隐式的进行扩容操作那么它的扩容机制是怎样的 模拟实现 ArrayList 新建一个 MyArrayList 类 构造方法带参 和 不带参的 两个构造方法 先来看不带参的 带参的构造方法 实现它的基础功能 add 功能 add index  add 两种用法的效果图 remove 功能 - 删除删除遇到的第一个 指定元素 remove 功能 - 删除 index 位置元素 get - 获取指定下标位置元素 set - 将指定的下标的元素置换为 指定的数据 clear - 清空 contains - 判断 指定元素 是否在线性表中 indexOf 和 lastIndexOf 直接搬原码注意indexOf 是前面写了的只要把private改成public就行直接搬lastIndexOf 总结 基本功能都实现了除了subList 没有实现到后面写到。 另外 你有没有发现。其实你想要模拟顺序表的功能实现最好的老师就是原码。以后大家在学习某一个数据结构时先看它的原码它会帮助你理解并掌握。 ArrayList 实践案例 - 扑克牌 目的         1.构造一副扑克牌         2.洗牌         3.揭牌 扑克牌的特点:         1.点数13点         2.花色(四种花色) 注意我们这副扑克不包含大小王。 发牌 / 揭牌 import java.util.ArrayList; import java.util.List; import java.util.Random;class Card{private int point;private String flowerColor;public Card(int point, String flowerColor) {this.point point;this.flowerColor flowerColor;}public int getPoint() {return point;}public void setPoint(int point) {this.point point;}public String getFlowerColor() {return flowerColor;}public void setFlowerColor(String flowerColor) {this.flowerColor flowerColor;}Overridepublic String toString() {return { flowerColor point };} }public class PlayingCard {// 定义 扑克牌的花色private static final String[] flowerColors {♥,♠,♦,♣};// 创建一副扑克public static ListCard newCard() {ArrayListCard cards new ArrayList();for (int i 0; i 4; i) {// 4种花色for (int j 1; j 13; j) {// 尖 到 k 一共13个点数cards.add(new Card(j,flowerColors[i]));}}return cards;}// 洗牌public static void shuffle(ListCard list){// 牌数是52数组下标就是51// 从最后一张牌开始随机与 本身 或者 本身前面的任意一张牌 交换位置。// 这样的做交换性 比 从开头洗 的 打乱顺序的 效率 高。for (int i list.size()-1; i 0 ; i--) {// Random 是一个生成随机数的类Random random new Random();// 通过 Random的引用 random 去调用 nextInt() 方法。// random.nextInt() 方法根据括号中的值随机生成 0 ~ 括号中的值int rand random.nextInt(i);// 将 第 i 张牌 与 自身 或者 自身前面的任意一张牌的下标 丢给 swap方法// 让它去交换位置swap(list,i,rand);}}// 交互式洗牌模式private static void swap(ListCard list,int i,int j){// 我们现在是面向对象ArrayList虽然底层是一个数组但是需要使用方法才能操作数组的元素// 并不能像数组一样直接操作// Card tmp list[i];Card tmp list.get(i);// 获取 顺序表中对应下标的元素// list[i] list[j];list.set(i,list.get(j));// 将 j下标的元素赋给 i 下标的元素// list[j] tmp;list.set(j,tmp);}public static void main(String[] args) {System.out.println(一副买来拆的牌);ListCard list newCard();System.out.println(list);System.out.println( 洗牌 );shuffle(list);System.out.println(list);System.out.println( 发牌3个人轮着发每个人5张牌);ArrayListArrayListCard player new ArrayList();// 这行代码 就是 一个二维数组// 首先我们有一个player player 的每个元素 都是 ArrayListCard 类型。// 也就是说每个元素就是一个顺序表也可以说是一个一维数组。// 你也可以这么理解 第一个 ArrayList 是用来记录有 玩家的方位/顺序表的地址/数组的地址// 第二个ArrayList 就是 每个玩家手上牌的情况/数组的元素情况/顺序表的底层数组元素情况。// 你可以 把 player 看作牌桌等待三位玩家的入场。// 打牌三人组ArrayListCard playerOne new ArrayList();ArrayListCard playerTwo new ArrayList();ArrayListCard playerThree new ArrayList();// 将三位玩家的信息加载到 player 当中player.add(playerOne);player.add(playerTwo);player.add(playerThree);for (int i 0; i 5; i) {// 发 5 轮牌for (int j 0; j 3; j) {// 每个人 轮着发最终每个人5张牌Card card list.remove(0);player.get(j).add(card);}}// 打印每个人的手牌System.out.println(playerOne的手牌 playerOne);System.out.println(playerTwo的手牌playerTwo);System.out.println(playerThree的手牌playerThree);System.out.println(list 剩余的牌list);}// public static void main1(String[] args) { // Card card new Card(3,♠); // System.out.println(card); // } }
http://www.dnsts.com.cn/news/162915.html

相关文章:

  • 网站的增加条件设计的wordpress主机名
  • 郑州企业的网站建设住房和城市建设部网站
  • 网站建设手机软件网站点击量在哪里看
  • 怎么做网站简单的网站开发与设计培训
  • 瑞安规划建设局网站成都网站模板购买
  • 石狮app网站开发网站后台权限设计
  • 织梦dedecms医院类网站在线预约挂号插件k8s wordpress mysql
  • 怎么利用网站赚广告费百度通用网址
  • wordpress解决速度慢上海网站seo牛巨微
  • 网站建设一次中国营销传播网手机版入口
  • 做网站外包哪家好中国风网站模板下载
  • 推广自身网站视觉设计的网站和app
  • 中英文网站前端怎么做嘉兴网站建设网站建设
  • 开家网站建设培训班可以做基因通路分析的网站
  • 网站建设工作进度表网站开发ppt
  • 中英语双语网站咋做网站建设名片
  • 做网站的专业叫什么品牌策划全案公司
  • 最佳网站设计seo研究中心怎么样
  • 织梦网站地图怎么做无锡网站建设 君通科技
  • 璧山集团网站建设贵阳做网站优化
  • 移动端网站做排名网络宣传网站建设定制
  • 修改网站的设计用dw制作html简单网页制作
  • 云南省网站开发公司wordpress产品筛选
  • 万维网站网页配色方案
  • 建立学校网站网站大数据怎么做
  • 江苏省两学一做网站工信部网站找回不了密码
  • 烟台市建设工程质量监督站网站挪车码推广赚钱
  • 可以随意建国际商城的网站吗宜黄住房和城乡建设部网站
  • 北京清控人居建设集团网站营销软文案例
  • 服装网站首页设计西安seo培训哪个好