⚔疯狂输出⚔ 数组实现与链表实现
来源:互联网 发布:c语言苏小红第八章答案 编辑:程序博客网 时间:2024/05/19 15:23
利用迭代器遍历循环
Iterator iterator = list.iterator;//接收这个迭代器while(iterator.hasNest()){ // 判断数组中的元素是否在数组中iterator.next(); //如果在数组中就找下一个元素 如果不成立结束程序System.out.println(iterator.next());}
利用get方法遍历集合
for(i = 0 ;i< list.size();i++){System.out.println(list.get(i));}
用get方法获取指定下标对应的元素不能越界
list.get();//()括号中填想要获取元素的下标Object object = list.get();System.out.println(object+"get方法");System.out.println(list);
向指定的索引添加元素(不能越界添加)
public static void fun1(){List list = new ArrayList();list.add("s"):list.add("d");list.add("e");list.add(2,"e")}
替换指定索引 的元素(不能越界,不能超出集合长度的索引)
public static void fun1(){List list = new ArrayList();list.add("s"):list.add("d");list.add("e");list.set(2,"f");
删除
public static void fun1(){List list = new ArrayList();list.add("s"):list.add("d");list.add("e");list.remove(1);
Vector 遍历方法
public static void fun2(){Vector vector = new ArrayList();vector.add("d");vector.add("e");vector.add("a");vector.add("f");Enumeration elements = vecter.elements();while(elements.hasMoreElements()){System.out.println(elements.nextElement); }}
数组实现
特点 :查询快 增删慢
查询方式:依赖下标查询
增加元素 :插入一个元素时,插入元素后面的元素都会向后面后移动一位。
删除元素:删除一个元素的时候,删除元素后面的元素都会向前移动一位。
数组在创建的时候会默认有10个位置的空间,当要插入第11个元素的时候 系统会自动创建新的数组,新数组的长度是原数组 的1.5倍
链表实现
特点: 查询慢 增删快
查询方式:链表中的元素 是根据链表的元素保存了他上一个元素和下一个元素的地址,通过这个地址来查询元素的位置
查找时要先进行判断 判断查找的元素 是离头近还是尾近。
例如头近就会从头的首个元素进行依次进行查找,直到找到对应的元素。
增删时:直接找到要删除或者增加的元素,然后删除或者增加元素,相邻的元素会重新保存上一个元素和下一个元素的地址。所以链表无论是删除还是增加都不用移动元素只要重新保存地址即可。
测试LinkedList的方法
public static void main(String[]agrs){LinkedList linkedlist = new LinkedList();linklist.add("s");linklist.add("d");linklist.add("t");linklist.add("q");linklist.add("w");linklist.add("n");//从集合 和集合尾添加linklist.addFirst("ddsd");System.out.println(linklist.getFirst);//从集合首添加linklist.addList("qqqe");System.out.println(linklist.getList);}
使用迭代器遍历数组
如果 数组中 有”b”这个元素 就添加”Oh-Yes”这个元素
List list = new ArrayList();list.add(“s”);list.add(“d”);list.add(“w”);list.add(“c”);//告诉迭代器 我这个集合的长度为4 长度就是固定的Itereter itereter = list.itereter();while(itereter.hasNext){if( itereter.next().equals(“b”)){//这里会发生 并发修改的异常//[ConcurrentModificationException]//解决方案list.add("OH-Ys");}}System.out.println(list);
其实上面的体用ListItereter 更方便更容易懂一些
//获取lest中的ListItereterListItereter listitereter = list.listitereter();while(listitereter.hasNext();)if(listitereter.next().equals("b")){//让遍历器自己添加元素listitereter.add("OH-Ys");}
去掉集合中重复的元素 contains
需求/*需求 在集合中存储 “a”“a”“a” “b”“b”“b” “c”“c”“c” 去掉 重复的元素
public static void main(String[]agrs){Arraylist arraylist = new ArrayList();arraylist.add("a");arraylist.add("a");arraylist.add("a");arraylist.add("b");arraylist.add("b");arraylist.add("b");arraylist.add("c");arraylist.add("c");arraylist.add("c");Arraylist arraylist1 = new ArrayList(); //因为要消除重复的所以还需要一个数组Itereter itereter = arraylist.arraylist();while(itereter.hasNext()){//取出每一个元素Objext next = itereter.next();//核心:包含这个判断 contains//contains 依赖 equals 方法//equals方法是基类Object的 比较的方法是比较地址是否相同if(!arraylist.contains(next)){ arraylist.add(next);}}System.out.println(arraylist);}
利用isEmpty去判断集合是否为空
需求利用LinkList模拟 入栈 出栈
入栈:相当于添加
出栈:相当于删除
栈和队列的区别
栈:先入后出
队友:先入先出
public static void main (String[]agrs){LinkList list = new LinkList;list.Linkadd("a");list.Linkadd("b");list.Linkadd("c");while (!list.isEmpty){Syetem.out.println(list.removeLast());}}
- ⚔疯狂输出⚔ 数组实现与链表实现
- ⚔疯狂输出⚔二维数组
- ⚔疯狂输出 ⚔ 集合 和数组.
- ⚔疯狂输出 ⚔ 数组元素的反转!
- ⚔疯狂输出⚔ 数组选择排序法。
- ⚔疯狂输出⚔ 数组中的折半查找
- 疯狂输出⚔ java基础之数组篇
- ⚔疯狂输出⚔ 基本数据类型 与包装类
- 队列的链表与数组实现
- 栈—数组与链表实现
- 约瑟夫环 数组与链表实现
- 链表的实现与数组
- ⚔疯狂输出⚔数据的排序
- ⚔疯狂输出⚔ Java中的继承。
- 数组输出函数的实现
- java---实现数组的输出
- Python实现数组逆向输出
- 疯狂输出 ⚔ Java中的随机数
- 【Codeforces332E】Binary Key
- 关于安装Axure时,出现d3dcompiler_47.dll丢失报错的解决方法
- Java类包管理工具——jar
- 外媒关注中国电动车电池“换电”网络建成
- 华为手机进军美国冲击世界第二 机会与挑战并存
- ⚔疯狂输出⚔ 数组实现与链表实现
- 声学专家冯津伟入职阿里 正参与语音项目开发
- linux修改本机名
- 使用select2.js 时 根据val和text选中问题
- 项目实施流程和规范模板(测试方向)
- AI时代的攻与防
- 一文告诉你,NIPS 2017有多火爆 | 附PPT、视频、代码大总结
- 北京大学纳家勇治研究组在《美国国家科学院院刊》发文阐明时序记忆的神经机制
- Linux中文件的硬链接和软链接