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

阿里云做网站官网中安消防安全网站建设

阿里云做网站官网,中安消防安全网站建设,中国建筑劳务分包平台,香奈儿网站建设数据结构&#xff1a;ArrayList与顺序表 1&#xff1a;基本概念&#xff1a;线性表的理解可以先从数组上手&#xff0c;因为后续方法就是用数组来实现的。 2&#xff1a;先创建一个MyArrayList的类&#xff0c;<E>是Java的泛型机制&#xff0c;可以指定具体的类型。 定义…

数据结构:ArrayList与顺序表

1:基本概念:线性表的理解可以先从数组上手,因为后续方法就是用数组来实现的。

2:先创建一个MyArrayList的类,<E>是Java的泛型机制,可以指定具体的类型。

定义一个整形数组array,定义一个已占用的数组长度usedSize,再定义一个静态常量default_size,赋值为10。

java.util.ArrayList:是java包中的一个类,用于实现动态数组的功能。

再调用不带参数的构造方法,初始化一个整形数组,数组长度为default_size。

最后调用带参数的构造方法,将新创建的ArrayList对象赋值给list,并指定容量大小为intitalCapacity。

3: add方法:默认在数组最后添加元素。

调用add方法时要先调用isFull方法,判断数组是否满了。如果返回true代表数组满了,就要调用copyOf方法将数组长度扩容为2倍。

然后将usedSize位置赋值为data,usedSize加1

  

4:display方法:遍历数组

调用for循环,一个一个打印数组的元素,加空格,最后换行。

在测试类main方法调试:

打印结果:

5: add方法:在数组指定位置添加元素

先判断pos是否小于0或者大于usedSize,如果不是就打印“位置不合法”,结束程序。

再调用isFull方法判断数组是否满了,如果满了就调用copyOf方法扩容数组长度。

最后调用for循环,从usedSize位置开始,到pos位置结束,把前一个元素赋值给后一个,这样就把pos位置空出来了。循环结束后把pos位置赋值为data,最后usedSize++。

6:indexOf方法:查找某个元素对应的位置or下标

通过for循环遍历数组,如果某个下标对应的元素等于data,就返回下标i,如果没有就返回-1

7:contains方法:判断是否包含某个元素

通过for循环遍历数组,如果有i下标对应的值等于data,就返回true,没有就返回fasle

8:get方法:获取pos位置的元素

先判断pos是否小于0或大于等于usedSize,如果是则打印错误,返回-1

如果不是就返回pos位置的元素。

 

9: set方法:将pos位置的元素设为data

先判断pos是否小于0或大于等于usedSize,如果是就打印错误。

不是就将pos位置的元素设为data。

10:remove方法:删除第一次出现的关键词toRemove

先调用indexOf把toRemove的下标赋给index,如果index等于-1则打印错误。

接着调用for循环,从index位置开始,将后一个位置的元素赋值给前一个,直到数组最后一个,最后将数组长度减一。

11:size方法:求数组已有元素的个数

直接返回usedSize。

 12:clear方法:清空数组

注意:基本数据类型不能置为null,直接将数组长度设为0

 13:ArrayList的构造

(1)无参构造(myArrayList1):会自动分配大小为10的内存,不够按照1.5倍扩容。

(2)指定容量(myArrayList2):指定了大小为20的内存。

(3)利用其他collection构建arraylist(myArraylist3):将myArrayList2中的元素也存储到了myArrayList3中。

输出结果:

14: 三种遍历方式

(1):使用下标+for循环遍历

(2):foreach遍历

(3):Iterator遍历

输出结果:

15:杨辉三角

本质上是一个二维数组,每一行除了首末元素之外,其他的元素都是上一行的同列和前列位置的元素之和。

每行首末元素均为1

举例:curRow为第四行,prevRow为第三行,第四行第三个元素“3”等于第三行第二个元素“2”加上第三行第三个元素“1”。

给出一个generate方法,创建杨辉三角,number是赋值的具体行数。 

先创建一个LIst<List<Integer>>类型的二维数组 row,再创建一个一维数组rew,先给rew添加第一个元素,只有一个1,再把rew添加到row中。

从第二行开始for循环,创建一个当前行curRow,因为每个第一个元素和最后一个元素永远都是1,先用add方法加1。

再创建一个相对于curRow的上一行prevRow,通过row调用get方法。

再从第二列开始for循环,每个元素都是上一行的同列和前一列元素之和,然后加到curRow中,直到每一行倒数第二个元素。

计算完每一行中倒数第二个元素,跳出第二个循环,调用add方法添加每一行的最后一个1,再将curRow添加到二维数组row中。

再开始下一行一维数组的计算。

全部计算完以后,调用printPascalTriangle方法,实现换行操作,最终返回row。

通过嵌套两个foreach循环,实现每打印一个一维数组就换行。

在main方法中调用generate方法,并将参数值赋值为5

 

输出结果:

16: 巧用contains方法破解面试题

把“welcome to cvte”中包含“cvte”四个字母的字母全部去除并输出最终结果。

定义了一个func方法,给了两个参数str1和str2,然后创建了一个接收char类型的list。

通过for循环和charAt方法,将str1的每个字母转成字符赋值给ch,接着ch+一个“”变成字符串,然后通过contains方法,如果ch不包含在str2中,就加到list中,直到结束循环,返回list。

main方法中,创建一个list并调用func方法,赋值给ret,再通过foreach循环,输出最终结果。

输出结果:

17:洗牌游戏 

创建一个Card类,分别定义花色color和牌面值rank,给出一个toString方法、带参数的构造方法用于初始化color和rank,和不带参数的构造方法。

(1)再创建一个BuyCard类,用于生成牌和洗牌。

(2)先定义一个string类数组suit,定义四种花色。

(3)再给出一个返回值类型为ArrayList<Card>的Buy方法,创建一个ArrayList类型的list,然后套用两个for循环,给每种花色生成13张牌,添加到list中,最后返回list。

 

定义了一个shuffle方法,用于将牌打乱顺序。

for循环从list最后一个元素开始,到第二个元素为止,不断生成0到i的随机数,然后调用swap方法。

再定义了一个private方法,在shuffle中调用,用于交换两张牌。先将i位置的牌赋值给tmp,再将j位置的牌放到i位置,最后将tmp也就是原本i位置的牌放到i位置,实现了打乱牌的顺序。 

 

最后在main方法中,调用Buy方法并通过deck打印原本有顺序的牌。

再调用shuffle方法,打印打乱顺序后的牌 。

 

打印结果:

 

18:关于ArrayList的思考:本质上是用数组的思维解决实际问题。

http://www.dtcms.com/wzjs/585527.html

相关文章:

  • 做词云图的网站营销策略主要包括哪些
  • 网站未备案可以上线吗有源码怎么搭建网站
  • 会网站开发 不会软件教育类网站前置审批
  • 大学网站建设目标甘家口网站建设
  • 网站开发颜色代码工业和信息化部直属大学
  • 网站规划的基本原则最具有口碑的网站建设
  • 网站后台如何开发郑州网站建设郑州
  • 北京网站优化网app设计方案计划书
  • 网站建设吸引人的话语辽宁网站建设学校
  • 苏州 网站设计网站自助服务建设策划
  • 网站开发如何建设公共页面个人网站需不需要备案
  • 者珠海市建设局网站电子商务网站建设与维护展望
  • 网站设计主题南通中小企业网站制作
  • 平面广告设计价格seo 哪些媒体网站可以发新闻
  • 网站开发商城1688浙里建系统平台
  • 高品质的网站开发公weekly做网站
  • 展览设计网站推荐做盗市相关网站
  • 免费授权企业网站源码网架加工安装
  • wp网站如何做文件的付费下载株洲seo优化报价
  • 网站建设和网站维护广告网名
  • 建站报告2000字学习资料黄页网站免费
  • 设计网站如何推广方案海尔工业互联网公司排名
  • 网站风格设计中国软件是外包公司吗
  • 建设部房地产网站网站建设技术服务协议
  • 网站开发 国际网站邯郸网站设计开发公司
  • 交通银行网站开发建网站用的免费软件
  • 艺术品网站模板做游戏还是做网站好
  • 南京网站开发推南京乐识普陀区建设局网站
  • 电商网站建设任务分解结构西安互联网推广公司
  • cms大型门户网站做马甲的网站