JAVA 集合 List
来源:互联网 发布:魔兽60年代数据库 编辑:程序博客网 时间:2024/06/14 01:07
一、测试List中特有的方法
- add(int index, E element) 向指定索引添加元素(不能越界)
- get(int index) 获取指定下标对应的元素
- set(int index, E element) 替换指定索引的元素(不能越界)
- remove(int index) 按索引 来 删除 指定位置的元素
public static void fun1(){ List list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); // 向指定索引添加元素add(int index,E element) list.add(4,"w"); // 替换指定索引的元素(不能越界) list.get(1); // 利用get 方法 遍历集合 for(int i = 0; i < list.size();i++){ System.out.println(list.get(i); // 打印集合list 所有的元素} // 替换指定索引的元素(不能越界 不能替换 超出集合长度的索引) list.set(1,"LL"); // 按照索引 来 删除指定的位置元素 list.remove(1);}
二、Vector
枚举public static void fun2(){ // 数组实现的 被ArrayList 代替了 Vector vector = new Vector(); vector.addElement("a"); vector.addElement("b"); vector.addElement("c"); vector.addElement("d"); System.out.println(vector); // 遍历 (特有方法) // 快速枚举遍历 Enumeration elements = vector.elements(); while(elements.hasMoreElements()){ // 获取下一个元素 Object object = (Object) elements.nextElement(); System.out.println(object); }}
三、练习 要求:去除重复元素
// 需求:在集合中存储“a”,“a”,“a”,“b”,“b”,“b”,“c”,“c”,“c”// 要求: 去除重复元素 public static void fun4(){ 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 arrayList2 = new ArrayList(); // 获取迭代器 Iterator iterator = arrayList.iteratpr(); // 遍历集合 while(iterator.hasNext()){ // 取出每一个元素 Object next = iteartor.next(); // 判断新的集合中 包含不包含这个元素 // 不包含就 添加进去 if(!arrayList2.contains(next)){ arrayList2.add(next);} } System.out.println("arrayList2"); // 打印结果abc}
三、LinkedList 模拟栈的出栈 和 入栈
什么是栈 和 什么是队列
栈结构: 先入后出(main 函数最先入栈 最后弹栈)
队列结构:先入先出(排队买早点 买完就走)
// 入栈相当于添加 // 出栈相当于删除linkedList linkedList = new LinkedList();// 模拟入栈 添加元素linkedList.addLast("a");linkedList.addLast("b");linkedList.addLast("c");linkedList.addLast("d");// 模拟出栈 删除// 判断集合中 是不是空的集合while(!linkedList.isEmpty()){ // 从最后一个开始删除 打印被删除的元素 System.out.println(linkedList.removeLast()); // 打印出a , b , c, d}
数组的特点: 查询快 增删慢
查询 : 依赖 下标查询
增删 : 要把插入的位置后面的所有元素 向后移动一位(删除时,向前移动一位)
数组在创建时候,默认有10个位置,当要保存11个值的时候,系统会创建一个新的数组,长度为原来的1.5倍。
链表的特点:查询慢,增删快
1. 链表中的元素 保存了上一个元素 和 下一个元素的地址,通过这个地址可以找到上一个元素 和 下一个元素
2. 在进行查找的时候,先判断出要查找的元素 ,距离头近 还是尾近。
3. 例如头近 就从头位置 一个一个向下 查找(通过保存的地址)
4. 增删时: 直接找到插入的位置 重新保存上一个元素 和 下一个元素的地址,后面的元素的位置都不进行移动过。
什么时候使用ArrayList 和 LinkedList
功能是 查询多(ArrayList) 增删多(LinkedList)
public static void fun5(){ LinkedList linkedList = new LinkedList(); linkedList.add("a"); linkedList.add("b"); linkedList.add("c"); linkedList.add("d"); // d a b c d e linkedList.addFirst("d"); linkedList.addFirst("e"); System.out.println(linkedList.getFirst()); // 打印第一位a System.out.println(linkedList.getFirst()); // 打印最后一位 System.out.println(linkedList.get(1)); // 打印下标为1的元素}
阅读全文
1 0
- JAVA 集合 List
- JAVA集合-List集合
- Java集合----List集合
- java集合------List集合总结
- Java集合之List集合
- Java集合—List集合
- java 集合 list
- java集合----------List
- java------集合List
- JAVA集合之List
- Java中的List集合
- java 操作list集合
- Java集合List接口
- Java List集合操作
- JAVA集合框架-List
- Java集合<二>List
- Java集合之List
- java的list集合
- 最近以来学习thinkphp的总结
- 关于QtCharts中的映射器与模型的使用
- Memcached, Redis, MongoDB区别
- sql server 2008安装
- 职业生涯规划
- JAVA 集合 List
- java -- List类
- Java实现导出Excel表例子
- [CentOS7环境搭建](三)安装JDK
- bzoj 4361: isn
- 观察者模式。
- IT行业的风投
- Fortran+ openmp实现实例
- Qt 编译出错 Could not create directory