java的List集合
来源:互联网 发布:约瑟夫环 知乎 编辑:程序博客网 时间:2024/05/19 01:10
List集合:可变长数组,是一个接口,继承了Collection接口
1、与数组的区别:
1)数组里面的数据都是同一种数据类型
2)比数组多了很多方法
2、特点:
1)List是一个有序集合,存放数据有下标,原因:原则上是数组,数组是有序的。
2)List中允许有重复数据
3)List中允许有NULL元素
3、实现类:
1)用ArrayList可变长数组实现List的方式。ArrayList中增、删、改、查的性能比较:
a)查询性能最快
b)增、删时因为操作过程中要维护索引,会有时间和内存消耗用法参考代码:
public static void main(String[] args) {//1 声明List接口,List是个接口,ArrayList是实现了List接口的一个类//List是一个集合,可以放很多变量,不需要指定长度List list=new ArrayList();//添加数据list.add(1000);//无需指定索引,List判断当前存放数据,然后为其分配索引,index=0 size=1list.add("abc");//长度2list.add(99);list.add(null); //返回list长度System.out.println(list.size());//删除元素list.remove(0);//按索引删除,将下标为0的数据删除//遍历list size()返回list长度for(int i=0;i<list.size();i++){//获取list的值System.out.println(list.get(0));//获得abc}//遍历list的另一种方法,比for循环更快 ListIterator list集合的迭代器,存放list集合的数据ListIterator iterator=list.listIterator();while(iterator.hasNext()){//判断iterator是否包含数据,hasNext()有没有下一个元素System.out.println(iterator.next());//取出当前的值}//常用方法:contains() 判断list中是否包含某一个元素,返回boolean类型,不能返回个数System.out.println(list.contains(99));//常用方法:toArray() 转换为数组Object[] s=list.toArray();//查询最大值的方法//限制List放的数据类型//Integer是int的包装类//拆箱 Integer转换为int的过程,自动发生//装箱 int转换为Integer的过程,自动发生Integer integer=new Integer(1000);int number=integer;List<Integer> list2=new ArrayList<Integer>();list2.add(60);list2.add(50);list2.add(90);list2.add(40);list2.add(80);int max=0;//存放临时的最大值for(int i:list2){if(i>max){max=i;}System.out.println(max);}}
2)用LinkedList双向链表实现List的方式,可以实现双向遍历,存放的数据可以不连续。LinkedList中增、删、改、查的性能比较:
a)查询性能最慢,因为需要知道前后的索引index。
b)增、删性能较快,因为操作过程中不需要维护索引。用法参考代码:
public class LinkedListDemo {public static void main(String[] args) {List list=new LinkedList();list.add(100);//默认索引为0list.add(0,200);//该元素添加到索引为0,之前的元素向后移动list.add(0,300);//该元素添加到索引为0,之前的元素向后移动for(int i=0;i<list.size();i++){System.out.println(list.get(i));}//双向遍历ListIterator iterator=list.listIterator();//向前遍历while(iterator.hasPrevious()){System.out.println(iterator.previous());}//向后遍历while(iterator.hasNext()){System.out.println(iterator.hasNext());}}}
3)Vector:线程安全(线程同步:排队访问共享资源),不会因为多个线程抢一个资源而出现数据错误。用法参考代码:
public class VectorDemo {public static void main(String[] args) {Vector<Integer> v=new Vector<Integer>();v.add(100);v.add(null);v.add(null);v.add(200);//删除v.remove(1);for(int i:v){System.out.println(i);//输出Vector里所有的数据}}}
0 0
- java的list集合
- java的List集合
- Java 集合List的排序
- Java集合&List的实现
- java的集合list map
- JAVA List集合的基础知识
- Java List集合的遍历
- java集合List的功能
- JAVA集合-List集合
- Java集合----List集合
- JAVA集合的认识[Set,List,Map]
- java集合类List的使用
- java中List集合的使用
- java 简单的list对象集合
- Java中List集合的遍历
- Java集合中List的用法
- java中对集合List的操作
- Java中List集合的遍历
- Matlab 2016a和VS2013混合Dll编程步骤
- 365. Water and Jug Problem
- Openstack中Dashboard的二次开发
- excel导出导出
- 根目录下常用目录作用
- java的List集合
- 孤儿进程与僵尸进程
- javascript变量声明提升(hoisting)
- 7、多线程
- 数据结构实验之二叉树五:层序遍历
- Codeforces 543A. Writing Code DP
- 线性代数
- Linux编译安装中configure、make和make install各自的作用
- NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化