List子类 ArrayList Vector 和 LinkedList
来源:互联网 发布:制作游戏的软件 编辑:程序博客网 时间:2024/06/06 04:25
List子类 ArrayList Vector 和 LinkedList
List集合的子类遍历集合中的元素可以使用的任何迭代遍历方式
面试题:
List子类的特点?
ArrayList 底层数据结构是数组,查询快,增删慢,线程不安全,不同步,效率高 vector 底层数据结构是数组,查询快,增删慢,线程安全,同步,效率低 LinkedList 底层数据结构数链表,查询慢,增删快,线程不安全,不同步,效率高 应用场景:ArrayList:开发中用的非常多!如果给一个需求,不知道使用谁的时候,都使用ArrayList
ArrayList
需求:
ArrayList去除集合中字符串的重复值(字符串的内容相同)(创建新集合)
代码:
public static void main(String[] args) {
ArrayList al= new ArrayList();
al.add("hello") ; al.add("world") ; al.add("world") ; al.add("java") ; al.add("javaee") ; al.add("javaweb") ; al.add("javaee") ; al.add("javaee") ; ArrayList nal = new ArrayList(); Iterator i = al.iterator(); while(i.hasNext()){ String s = (String)i.next(); if(nal.contains(s)){ nal.add(s); } } Iterator i2 = nal.iterator(); while (i2.hasNext()){ String s = (String)i2.next(); System.out.println(s); }}
结果:
hello
world
java
javaee
javaweb
需求:
ArrayList去除集合中字符串的重复值(字符串的内容相同)附件条件:不允许新建集合去完成!
代码:
public static void main(String[] args) { ArrayList al= new ArrayList(); al.add("hello") ; al.add("world") ; al.add("world") ; al.add("java") ; al.add("javaee") ; al.add("javaweb") ; al.add("javaee") ; al.add("javaee") ; for(int x =0 ;x<al.size()-1;x++){ for(int y = 1+x;y<al.size();y++){ if(al.get(x).equals(al.get(y))){ al.remove(y); y--; } } } Iterator i = al.iterator(); while(i.hasNext()){ String s = (String)i.next(); System.out.println(s); }}
结果:
hello
world
java
javaee
javaweb
Vector
Vecotr的特有功能:
添加功能: public void addElement(Object obj) :给Vector集合中添加元素 public Object elementAt(int index) ------>get(int index):获取指定索引处的元素 public Enumeration elements() ---->Iterator iterator() boolean hasMoreElements() ---->hasNext():判断是否有下一个可以迭代的元素 Object nextElement() ----->next()
代码:
public static void main(String[] args) {
Vector v = new Vector();
v.addElement("Hello"); v.addElement("World"); v.addElement("Java"); for(int x = 0;x<v.size();x++){ String s = (String)v.elementAt(x); System.out.println(s); } System.out.println("*********"); Enumeration e = v.elements(); while(e.hasMoreElements()){ String s = (String)e.nextElement(); System.out.println(s); }}
结果:
Hello
World
Java
Hello
World
Java
LinkedList
特有功能:
和添加相关的方法:
public void addFirst(Object e)
public void addLast(Object e)
和获取相关的方法:
public Object getFirst()返回此列表的第一个元素。
public Object getLast():返回此列表的最后一个元素
和删除相关的方法:
public Object removeFirst():删除此列表的第一个元素
public Object removeLast():删除此列表的最后一个元素
代码:
public static void main(String[] args) { LinkedList ll = new LinkedList(); ll.add("Hello"); ll.add("World"); ll.add("Java"); /*和添加相关的方法: public void addFirst(Object e) public void addLast(Object e)*/ ll.addFirst("你好"); ll.addLast("我爱你"); System.out.println(ll); System.out.println("*******************"); /*和获取相关的方法: public Object getFirst()返回此列表的第一个元素。 public Object getLast():返回此列表的最后一个元素*/ System.out.println(ll.getFirst()); System.out.println(ll.getLast()); System.out.println("********************"); /* 和删除相关的方法: public Object removeFirst():删除此列表的第一个元素 public Object removeLast():删除此列表的最后一个元素*/ ll.removeFirst(); ll.removeLast(); System.out.println(ll);}
结果
[你好, Hello, World, Java, 我爱你]
你好
我爱你
[Hello, World, Java]
- List子类 ArrayList Vector 和 LinkedList
- List的子类ArrayList .Vector , LinkedList的特点
- ArrayList、Vector和LinkedList
- LinkedList、ArrayList和Vector
- LinkedList,ArrayList和Vector
- ArrayList、Vector和LinkedList
- ArrayList、Vector和LinkedList
- ArrayList、LinkedList和Vector
- ArrayList、Vector和LinkedList
- ArrayList、Linkedlist和Vector
- LinkedList,ArrayList和Vector
- 集合list、ArrayList、LinkedList、Vector
- Collection-List/ArrayList/LinkedList/Vector
- JAVA之旅(十九)——ListIterator列表迭代器,List的三个子类对象,Vector的枚举,LinkedList,ArrayList和LinkedList的小练习
- List-ArrayList、LinkedList、Vector的底层实现和区别
- 黑马程序员--07.集合框架--04.List实现子类【ArrayList】【LinkedList】【Vector】
- 16. 集合类 (List的子类ArrayList、Vector、LinkedList与JDK 5新特性)
- list arraylist 和 linkedlist
- TensorFlow学习(四):优化器Optimizer
- 台湾酵素三大品牌,有吗?
- Windows下Python-nmap安装使用
- Spring aop面向切面编程
- Announcing Zuul: Edge Service in the Cloud
- List子类 ArrayList Vector 和 LinkedList
- 通过java.net.URLConnection发送HTTP请求的方法
- CH340 +Micro USB转串口 不能识别 不起振问题
- 距离变换代码实现(c代码)
- QT布局之水平垂直加Qss样式布局
- android ndk 02 C语言 二级指针 指针运算 指针与数组
- Mysql主从复制和读写分离Amoeba实现
- 测试
- VUE+WebPack游戏设计:为对战扑克牌增加能力槽