首页 > 学院 > 开发设计 > 正文

Collection集合

2019-11-08 01:43:13
字体:
来源:转载
供稿:网友

1.Collection 集合包括 list  和 set 集合

2.  list集合:子类  ArrayList 底层数据结构是数组,查询快,增删慢,线程不安全,效率高

        LinkedList     底层数据结构是链表,查询慢,增删快,线程不安全,效率高

特有功能:void  addFirst()   void   addLast()等等

         Vector 底层数据结构是数组,查询快,增删慢,线程安全,效率低,但一般不用

注意:list集合的 void add(int index,E element):在指定位置添加元素

E set(int index,E element) :在指定位置修改元素,返回被修改的元素

3.  list集合特有功能:ListIterator<E> listIterator();  此迭代器特有功能:boolean hasprevious();   E PRevious();可以实现集合的逆向遍历,但必须先正向遍历

	//List集合遍历并修改元素		List<String> list=new ArrayList<String>();		//添加元素		list.add("Hello");		list.add("world");		list.add("java");		//注意不能迭代器遍历,集合修改元素,否则会发生并发修改异常ConcurrentModificationException 		//遍历集合  1.迭代器遍历,迭代器修改元素			ListIterator<String> ls=list.listIterator();		while(ls.hasNext()){			if(ls.next().equals("world")){				ls.set("c++");			}		}		System.out.println(list);//[Hello, c++, java]		//2.集合遍历,集合修改		for(int x=0;x<list.size();x++){			if(list.get(x).equals("world")){				list.set(1,"c++");			}		}		System.out.println(list);//[Hello, c++, java]		4. 将一个数组转成一个list集合

/*把数组转换成集合 * String> List<String> java.util.Arrays.asList(String... arg0) * 注意事项:可以把集合转换成数组,但必须注意数组的长度不能改变, *         (String... arg0) 本质是数组		List<String> list1 =Arrays.asList("Hello","java","123");		//list1.add("javaee");//UnsupportedOperationException		//list1.remove(1);//UnsupportedOperationException		list1.set(1, "world");		for(String s:list1){			System.out.println(s);		}5. set集合和list集合的区别

set集合元素是唯一的,同时是无序的(即元素存储和遍历的时候,顺序可能不一样)

list集合元素可以重复,是有序的(即元素存储和遍历顺序一样)

6. set集合 :子类 hashSet  底层数据结构是哈希表,保证元素唯一性

   LinkedHashset底层数据结构是哈希表和链表,链表保证元素有序(即元素存储和遍历顺序一样)

TreeSet 底层数据结构是二叉树结构(红黑树是一种自平衡的二叉树结构),并且能够按照某种规则对元素进行排序

  set集合的唯一性是依赖于hashCode()和equals()方法

7.TreeSet  

    A:自然排序    自定义对象的时候必须实现Comparable接口          存储:第一个为根节点 ,之后的元素按照(通过底层的Comparable()方法,大的(即返回值为正数)排在根节点的右边,小的(即返回值为负的)排在根节点的左边);          遍历:从根节点开始,按照左中右的顺序依次遍历    B:比较器排序           new TreeSet(Comparator<? super E> comparator)  ;    Comparator 是个接口,实际上要的是一个该接口的子类对象 所以一般用匿名内部类


上一篇:PAT 挖掘机技术哪家强

下一篇:守护线程

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表