⚔疯狂输出⚔ 数组实现与链表实现

来源:互联网 发布:c语言苏小红第八章答案 编辑:程序博客网 时间:2024/05/19 15:23

利用迭代器遍历循环

Iterator  iterator  =  list.iterator;//接收这个迭代器while(iterator.hasNest()){   // 判断数组中的元素是否在数组中iterator.next();               //如果在数组中就找下一个元素  如果不成立结束程序System.out.println(iterator.next());}

利用get方法遍历集合

fori = 0i< 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());}}
原创粉丝点击