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

兰州网站建设信誉好的苏州网站建设

兰州网站建设,信誉好的苏州网站建设,苏州seo关键词优化推广,网站根目录什么是List List是一个接口#xff0c;继承自Collection。 List的使用 List是个接口#xff0c;并不能直接用来实例化。 如果要使用#xff0c;必须去实例化List的实现类。在集合框架中#xff0c;ArrayList和LinkedList都实现了List接口。 线性表 线性表#xff08;lin… 什么是List List是一个接口继承自Collection。 List的使用 List是个接口并不能直接用来实例化。 如果要使用必须去实例化List的实现类。在集合框架中ArrayList和LinkedList都实现了List接口。 线性表 线性表linear list是n个具有相同特性的数据元素的有限序列。 常见的线性表顺序表、链表、栈、队列… 线性表在逻辑上是线性结构也就说是连续的一条直线 顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构一般情况下采用数组存储。在数组上完成 数据的增删查改 接口的实现 类的成员 打印顺序表 对上述功能进行测试 上述两个功能的测试 所有代码如下 PosOutBoundsException public class PosOutBoundsException extends RuntimeException{public PosOutBoundsException() {}public PosOutBoundsException(String message) {super(message);} }SeqList public class SeqList {private int[] elem;private int usedSize;记录当前顺序表当中 有多少个有效的数据private static final int DEFAULT_CAPACITY2;public SeqList() {this.elem new int[DEFAULT_CAPACITY];}//打印顺序表public void display(){for (int i 0; i this.usedSize; i) {System.out.print(this.elem[i] );}System.out.println();}//新增元素默认在所有数据的结尾处添加public void add(int data){if(isFull()){resize();System.out.println(扩容成功当前容量为this.elem.length);}this.elem[usedSize]data;usedSize;System.out.println(尾部添加元素成功);}public boolean isFull(){return usedSize elem.length;//数组中元素的个数等于数组的长度}private void resize(){elemArrays.copyOf(elem,2*elem.length);//第二个参数为拷贝元素长度如果超出原始数组的长度则补充默认值如int型则补充0}//判断报中是否还有某个元素public boolean contain(int toFind){for (int i 0; i this.usedSize; i) {if(elem[i]toFind){return true;}}return false;}//查找某个元素对应的下标public int indexOf(int toFind){for (int i 0; i this.usedSize; i) {if(elem[i]toFind){return i;}}return -1;}//获取pos位置的数据public int get(int pos){if(!checkPos(pos)){throw new PosOutBoundsException(get 位置不合法);}return elem[pos];}private boolean checkPos(int pos){if(pos0||posusedSize){return false;}return true;}//获取顺序表的长度public int size(){return this.usedSize;}//给pos位置设置为value为更新数据的意思public void set(int pos,int value){if(!checkPos(pos)){throw new PosOutBoundsException(set 位置不合法);}this.elem[pos]value;}//在pos位置新增元素public void add(int pos,int data){if(pos0||posthis.usedSize){throw new PosOutBoundsException(add新增 位置不合法);}if(isFull()){resize();}//pos位置后的数据后移一位for (int i this.usedSize-1; ipos; i--) {this.elem[i1]this.elem[i];}//存this.elem[pos]data;this.usedSize;}//删除第一次出现的数字keypublic void remove(int toRemove){if(isEmpty()){return;}int indexindexOf(toRemove);if(index-1){return;//没有这个数字}for (int i index; i this.usedSize-1; i) {this.elem[i]this.elem[i1];}this.usedSize--;}public boolean isEmpty(){return this.usedSize0;}//清空顺序表public void clear(){this.usedSize0;} } Test1.java class Test35{public static void main(String[] args) {SeqList seqListnew SeqList();seqList.add(1);seqList.add(2);seqList.add(3);seqList.add(4);seqList.add(5);seqList.display();System.out.println(seqList.contain(5));System.out.println(seqList.indexOf(3));System.out.println(seqList.indexOf(7)); /* System.out.println(seqList.size());try{seqList.set(15,9);} catch (PosOutBoundsException e) {e.printStackTrace();System.out.println(我捕获到了一个异常);}*/seqList.display();seqList.add(4,890);seqList.display();seqList.remove(890);seqList.display();} }ArrayList简介 ArrayList是以泛型方式实现的使用时必须要先实例化 ArrayList底层是一段连续的空间并且可以动态扩容是一个动态类型的顺序表 也可以使用如下创建一个对象 ArrayList的构造 ArrayList常见操作 subList方法会改变原来对象中0位置处的数据截取拿到的是地址 ArrayList的遍历 ArrayList 可以使用3种方式遍历for循环下标、foreach、使用迭代器 ArrayList的扩容机制 按照1.5倍方式扩容 如果用户需要扩容大小 超过 原空间1.5倍按照用户所需大小扩容 ArrayList的具体使用 简单的洗牌算法 运行结果如下 全部代码 Card public class Card {//结合成为一张牌private String suit;//花色private int rank;//大小public Card(String suit, int rank) {//构造方法this.suit suit;this.rank rank;}//设置和获得一张牌的花色和大小public String getSuit() {return suit;}public void setSuit(String suit) {this.suit suit;}public int getRank() {return rank;}public void setRank(int rank) {this.rank rank;}Overridepublic String toString() {return 【 suit , rank 】;} }Test public class Test {//设置花色,用于初始化所有牌private static final String[] SUITS{♥,♠,♣,♦};//初始化所有牌public static ListCard buyCard(){ListCard cards new ArrayList();for (int i 0; i SUITS.length ; i) {for (int j 1; j 13; j) {Card cardnew Card(SUITS[i],j );cards.add(card);}}return cards;}//洗牌 从最后一张牌开始到倒数第二张牌随机的与前面的某一张牌交换public static void shuffle(ListCard cards){Random random new Random();//new了一个用于产生随机数的对象for (int i cards.size()-1; i0 ; i--) {int jrandom.nextInt(i);//产生[0,i)之间的随机数Card tempcards.get(i);cards.set(i,cards.get(j));cards.set(j,temp);}}public static void main(String[] args) {ListCard cards buyCard();System.out.println(cards);shuffle(cards);System.out.println(cards);//3个人每个人轮流揭5张牌//每个人最后会得到5张牌,我们用hand1hand2hand3来存储每个人的5张牌//怎么用来表示每个人呢这里我们用hand表示在hand顺序表中每个元素都是一个人//而每个人都有一个顺序表hand12或者3ListCard hand1new ArrayList();ListCard hand2new ArrayList();ListCard hand3new ArrayList();ListListCard handnew ArrayList();//将hand1hand2hand3添加到hand顺序表中hand.add(hand1);hand.add(hand2);hand.add(hand3);//发牌for (int i 0; i 5; i) {for (int j 0; j 3; j) {//拿走最上面的一张牌Card cardcards.remove(0);hand.get(j).add(card);}}System.out.println(第1个人得到的牌);System.out.println(hand1);System.out.println(第2个人得到的牌);System.out.println(hand2);System.out.println(第3个人得到的牌);System.out.println(hand3);System.out.println(剩余的牌);System.out.println(cards);}}利用ArraryList构造出杨辉三角采用直角三角形的样式 同3个人玩扑克牌一样这里我们也构造出一个二维的顺序表 用ret来存储所有的行list用来存储每一行的元素 运行结果如下 ArrayList的问题及思考
http://www.huolong8.cn/news/34089/

相关文章:

  • 福田区住房和建设局地址官方网站专业建站商
  • 数据库端口 wordpress优化网站价格
  • 网页制作怎么上传到网站快站建站教程
  • 制图网站中国建设银行网站-个人客
  • 长沙建设公司网站济南比较好的网站开发公司
  • 青岛网站域名备案广东新闻联播
  • 建设一个官方网站的费用天猫网站运营
  • wordpress的登录地址修改番禺网站优化
  • 广州微网站建设信息那个网站做毕业设计
  • 直播网站建设目的友情链接交换标准
  • 在虚拟机中如何做二级域名网站wordpress5换回编辑器
  • 广东省住房和城乡建设厅网站进不去梧州论坛红豆社区
  • 建设手机网站上海网站平台建设
  • 绥化市建设局网站网络开发是什么专业
  • 网站搭建行业松原做招聘的网站有哪些
  • 西部数码网站管理助手 mysql基层建设是哪个网站的
  • 定期更新网站微信公众号菜单跳转的网页怎么制作
  • 西安seo网站管理个人简历免费导出
  • 南城仿做网站智慧团建网站怎么转团关系
  • 成都房产网官方网站建设手机网站的方案
  • 深圳制作网站公司哪里好书画展示网站源码
  • 怎样做网站设计要交税吗个安装wordpress
  • 化学网站定制房地产怎么白手起家
  • 找工程去哪个网站网站制作公司兴田德润简介
  • 2网站建设张家界网站建设app
  • 苏州市工业园区规划建设局网站网站建设比较合理的流程
  • 商业网站页面公司广告墙设计图片
  • wap网站html5顺德网站建设报价
  • 美妆网站建设环境分析万网封停慧聪网域名事件
  • 开发网站公司地址做网站用的浏览器有哪些