• Java :List


    1、List是一个接口,不能实例化,需要实例化一个ArrayList或者LinkedList
    List myList = new ArrayList();
    2、List中可以添加任何对象,包括自己定义的新的类。 
    
    
    • class Person{
      .....
      }
      上面定义了一个Person类,下面看好如何使用List
      Person p1=new Person();
      Person p2=new Person();
      List myList=new ArrayList();
      myList.add(p1);
      myList.add(p2);//这里是将对象加入到list中
      for(int i=0;i<2;i++){
      Person p=(Person)myList.get(i);//注意,这里一定要强制类型转换,因为List中取出的对象都是Object类型的,希望对你有所帮助

      }

      3、使用myList.add(任何对象);就可以进行添加了。
      4、取值的时候myList.get(索引);取出来的值都是Object,使用时需要类型转换。
      5、可用Iterator迭代器对List中的元素进行迭代操作
      List 集合中的对象按照一定的顺序排放,里面的内容可以重复。

      List常用方法:
      List<E>([]内的内容可省略),与数组类似:
      实例化:List[<数据类型>] list = new ArrayList[<数据类型>]();
      1、获得集合内元素个数:list.size();
      2、添加元素:
      默认添加:list.add(e);
      指定下标添加(添加后下标后的元素向后挪一位):list.add(index,e);
      3、删除元素:
      返回是否删除:list.remove(e);
      直接删除指定下标的元素(只删除找到的第一个相符合的元素):list.remove(index);
      4、替换元素(替换掉指定下标的元素):list.set(index,e);
      5、取出元素:list.get(index);
      6、清空集合:list.clear();
      7、判断集合中是否存在某个元素(存在返回true,不存在返回false):list.contains(e);
      8、对比两个集合中的所有元素:
      两个对象一定相等:list.equals(list2);
      两个对象不一定相等:list.hashCode() == list2.hashCode();
      (两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。)
      9、获得元素下标:
      元素存在则返回找到的第一个元素的下标,不存在则返回-1:list.indexOf(e);
      元素存在则返回找到的最后一个元素的下标,不存在则返回-1:list.lastIndexOf(e);
      10、判断集合是否为空(空则返回true,非空则返回false):list.isEmpty();
      11、返回Iterator集合对象:list.iterator();
      12、将集合转换为字符串:list.toString();
      13、截取集合(从fromIndex开始在toIndex前结束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex);
      14、将集合转换为数组:
      默认类型:list.toArray();
      指定类型(objects为指定类型的数组对象,并将转换好的数组赋值给objects数组):list.toArray(objects);
      List接口实现的类:ArrayList(实现动态数组), Vector(实现动态数组) ,LinkedList(实现链表), Stack(实现堆栈)
      1.java.util.ArrayList类实现一个可增长的动态数组,平时用的比较多的就是add()方法,其它方法
      请参考API帮助文档。使用该方法向集合内添加对象,并且这些对象是按照一定的顺序排列
      的,它内部原理是数组实现的,因此处理数据量较大时,不建议使用。
      public class TestArrayList {

      public static void main(String[] args) {
      //声明List 并实例化为ArrayList
      List al = new ArrayList();
      //使用add()方法添加元素
      al.add("a");
      al.add("b");
      al.add("c");
      al.add("d");
      //使用Iterator迭代器遍历出集合的元素并打印
      for(Iterator i = al.iterator();i.hasNext(); ){
      String str = (String) i.next();
      System.out.println(str);
      }
      }

      }
      2.java.util.Vector(向量)类 与ArrayList类似的也是实现一个动态的数组,该向量可以随意的增长以存放更多的对象


      public class TestArrayList {

      public static void main(String[] args) {
      //声明List 并实例化为Vector
      List al = new Vector();
      //使用add()方法添加对象
      al.add("a");
      al.add("b");
      al.add("c");
      al.add("d");
      //使用Iterator迭代器遍历出集合的对象并打印
      for(Iterator i = al.iterator();i.hasNext(); ){
      String str = (String) i.next();
      System.out.println(str);
      }
      }

      }
      3.java.util.LinkedList类实现了链表,可初始化化为空或者已存在的集合,通常使用以下方法
      add();向链表末尾添加对象。
      addFirst()在链表开头添加对象。
      addLast()在链表末尾添加对象。
      getFirst()得到链表开头的对象。
      getLast()得到链表末尾的对象。
      注意该类提供了随机访问列表中的元素的方法,但是底层依然必须遍历去查找随机访问的对象,因此性能依然有限.

      public static void main(String[] args) {
      //声明LinkedList并实例化
      LinkedList al = new LinkedList();
      //使用add()方法添加元素
      al.add("a");
      al.add("b");
      al.add("c");
      al.add("d");
      //使用Iterator迭代器遍历出集合的元素并打印
      for(Iterator i = al.iterator();i.hasNext(); ){
      String str = (String) i.next();
      System.out.println(str);
      }
      System.out.println("_____");
      //向链表头和尾分别添加x和z
      al.addFirst("z");
      al.addLast("x");
      //遍历查看添加后的结果
      for(Iterator i = al.iterator();i.hasNext(); ){
      String str = (String) i.next();
      System.out.println(str);
      }

      }

      4.java.util.Stack类实现了堆栈数据结构,即按照先进后出的原则存放数据。创建时只能为空。
      使用push()方法进行添加对象
      public static void main(String[] args) {
      //声明Stack并实例化
      Stack al = new Stack();
      //使用push()方法添加元素
      al.push("a");
      al.push("b");
      al.push("c");
      al.push("d");
      al.push("f");
      //使用Iterator迭代器遍历出集合的元素并打印
      for(Iterator i = al.iterator();i.hasNext(); ){
      String str = (String) i.next();
      System.out.println(str);
      }
      }
      _____________________________
      Example added by myself:  
      public class Test { 
       
       public static void main(String[] args) {
        // TODO Auto-generated method stub
        ArrayList list = new ArrayList();
        list.add(0,"aa");
        list.add(1,"bb");
        list.add(2,"cc");
        for(int i=0;i<10;i++)
        {
         
         list.add(Integer.toString(i));
        }
        for(int i=0;i<list.size();i++)
        {
         System.out.println(list.get(i));
        }
        for(Iterator i=list.iterator();i.hasNext();)
         //首先定义一个list对象的Iterator,然后利用该Iterator进行循环迭代操作
        {
         String s =(String)i.next();
         System.out.println(s);
        }
       }
      } 

     
  • 相关阅读:
    如何理解对象、属性、方法?
    添加超链接,请始终将正斜杠添加到子文件夹
    什么导致table不稳固?
    HTML css和js浏览器兼容问题
    理解前端数据双向绑定原理——Object.defineProperty()
    Js事件传播流程
    移动端开发项目注意事项
    get与post的区别
    Web 页面性能优化与SEO优化
    我的WCF项目系列之二WCF初级应用
  • 原文地址:https://www.cnblogs.com/xuepei/p/3664772.html
Copyright © 2020-2023  润新知