JAVA-集合-随笔

一 , 集合的体会(Collection , list, set ,map)

 1,遍历list的方法:

  第一种方法:for-each方法

  public class ListTest{

    public static void main(String[] args){

      List<String> list = new ArrayList<String>();
      long t1,t2;
      for(int j = 0; j < 10000000; j++)
      {
        list.add("aaaaaa" + j);
      }

      for(String tmp:list)
      {
        //System.out.println(tmp);
      }

  }

   第二种方法:for-变量的方法
    public class ListTest{

    public static void main(String[] args){

      List<String> list = new ArrayList<String>();
      long t1,t2;
      for(int j = 0; j < 10000000; j++)
      {
        list.add("aaaaaa" + j);
      }

      for(int i = 0; i < list.size(); i++)
      {
        list.get(i);
        //System.out.println(list.get(i));
      }

     }

      t2=System.currentTimeMillis();
    }

   第三种方法 :迭代遍历方法
    public class ListTest{

    public static void main(String[] args){

      List<String> list = new ArrayList<String>();
      long t1,t2;
      for(int j = 0; j < 10000000; j++)
      {
        list.add("aaaaaa" + j);
      }

      Iterator<String> iter = list.iterator();
      t1=System.currentTimeMillis();
      while(iter.hasNext())
      {
        iter.next();
        //System.out.println(iter.next());
      }
      t2=System.currentTimeMillis();

      // for (Iterator i = list.iterator(); i.hasNext();) {
              //System.out.println(i.next());
            //} 

    }

    }
  2,遍历Set的方法:

    1.迭代遍历:

    Set<String> set = new HashSet<String>();
    Iterator<String> it = set.iterator();
    while (it.hasNext()) {
      String str = it.next();
      System.out.println(str);
    }

   2.for循环遍历:
        for (String str : set) {
    System.out.println(str);
    }

    优点还体现在泛型 假如 set中存放的是Object

    Set<Object> set = new HashSet<Object>();
    for循环遍历:
    for (Object obj: set) {
    if(obj instanceof Integer){
    int aa= (Integer)obj;
    }else if(obj instanceof String){
    String aa = (String)obj
    }
    }

   3.Map 的遍历    

    //循环遍历map的方法
    public class CircleMap {
    public static void main(String[] args) {
    Map<String, Integer> tempMap = new HashMap<String, Integer>();
    tempMap.put("a", 1);
    tempMap.put("b", 2);
    tempMap.put("c", 3);
    // 遍历方法一 hashmap entrySet() 遍历
    System.out.println("方法一");
    Iterator it = tempMap.entrySet().iterator();
    while (it.hasNext()) {
    Map.Entry entry = (Map.Entry) it.next();
    Object key = entry.getKey();
    Object value = entry.getValue();
    System.out.println("key=" + key + " value=" + value);
    }
    System.out.println("");
    // JDK1.5中,应用新特性For-Each循环
    // 遍历方法二
    System.out.println("方法二");
    for (Map.Entry<String, Integer> entry : tempMap.entrySet()) {
    String key = entry.getKey().toString();  
    String value = entry.getValue().toString();
    System.out.println("key=" + key + " value=" + value);
    }
    System.out.println("");

    // 遍历方法三 hashmap keySet() 遍历
    System.out.println("方法三");
    for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {
    Object obj = i.next();
    System.out.println(obj);// 循环输出key
    System.out.println("key=" + obj + " value=" + tempMap.get(obj));
    }
    for (Iterator i = tempMap.values().iterator(); i.hasNext();) {
    Object obj = i.next();
    System.out.println(obj);// 循环输出value
    }
      System.out.println("");

    // 遍历方法四 treemap keySet()遍历
    System.out.println("方法四");
    for (Object o : tempMap.keySet()) {
    System.out.println("key=" + o + " value=" + tempMap.get(o));
    }
    System.out.println("11111");

    // java如何遍历Map <String, ArrayList> map = new HashMap <String,
    // ArrayList>();
    System.out.println("java 遍历Map <String, ArrayList> map = new HashMap <String, ArrayList>();");
    Map<String, ArrayList> map = new HashMap<String, ArrayList>();
    Set<String> keys = map.keySet();
    Iterator<String> iterator = keys.iterator();
    while (iterator.hasNext()) {
    String key = iterator.next();
    ArrayList arrayList = map.get(key);
    for (Object o : arrayList) {
      System.out.println(o + "遍历过程");
    }
    }
    System.out.println("2222");
    Map<String, List> mapList = new HashMap<String, List>();
    for (Map.Entry entry : mapList.entrySet()) {
      String key = entry.getKey().toString();
       List<String> values = (List) entry.getValue();
      for (String value : values) {
      System.out.println(key + " --> " + value);
     }
    }
    }
    }

  Q:Comparable和Comparator区别
    A:调用java.util.Collections.sort(List list)方法来进行排序的时候,List内的Object都必须实现了Comparable接口。
        java.util.Collections.sort(List list,Comparator c),可以临时声明一个Comparator 来实现排序。
        Collections.sort(imageList, new Comparator() {
            public int compare(Object a, Object b) {
                int orderA = Integer.parseInt( ( (Image) a).getSequence());
                int orderB = Integer.parseInt( ( (Image) b).getSequence());
                return orderA - orderB;
           }
        });
        如果需要改变排列顺序
        改成return orderb - orderA 即可。

  

时间: 2024-08-24 18:26:33

JAVA-集合-随笔的相关文章

JAVA 集合随笔

JDK1.8;(仅列举常见的) 一: Iterable接口:三个方法:         Iterator<T> iterator(); default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } } default Spliterator<T> spliterator() {       

Java集合,看这一篇就够了

Java集合是java.util下特别有用的工具类,大致分为2个系列:Collection接:口 和Map接口派生的. 按体系分,则分为四种 1.  List:有序重复的集合: 2. Set: 无序不重复的集合 3. Map: 有映射关系的集合(key-value ) 4. Queue: 代表队列集合的实现(JDK5之后添加的) 这里捡几个不得不说的子类来说说: 1.HashSet 如果提到Set,不得不提他的接口实现类HashSet. 特点: 1.无序,2.不能同步,即线程非安全的,3.值可以

Java—集合框架List

集合的概念 现实生活中:很多的事物凑在一起 数学中的集合:具有共同属性的事物的总和 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象 集合的作用 在类的内部,对数据进行组织(针对作用与意义一样的属性,将他们放到一个集合中) 简单而快速的搜索大数量的条目 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或删除有关元素 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型 与数组相比 数组的长度

Java 集合

在Java Collections Framework中,不同类型的集合使用不同类型的数据结构以不同的方式存储它们的元素. 集合框架提供了遍历集合的以下方法: 使用迭代器 使用for-each循环 使用forEach()方法 使用迭代器 迭代器可以对集合执行以下三个操作: 检查是否有尚未访问的元素. hasNext() 检查是否有下一个访问的元素. next() 删除集合的最后访问元素. remove() 例子1 使用迭代器打印列表的所有元素: import java.util.ArrayLis

《深入理解Java集合框架》系列文章

Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framework, JCF)的资料却很少,甚至很难找到一本专门介绍它的书籍,这给Java学习者们带来不小的麻烦.我深深的不解其中的原因.虽然JCF设计参考了STL,但其定位不是Java版的STL,而是要实现一个精简紧凑的容器框架,对STL的介绍自然不能替代对JCF的介绍. 本系列文章主要从数据结构和算法层面分析

Java集合相关面试问题和答案

Java集合相关面试问题和答案 面试试题 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1.2提出了囊括所有集合接口.实现和算法的集合框架.在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久.它还包括在Java并发包中,阻塞接口以及它们的实现.集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而非实现我们自己的集合类.

Java集合

JAVA集合小结   有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否 否 HashSet TreeSet 是(用二叉树排序) Map AbstractMap 否 使用key-value来映射和存储数据,Key必须惟一,value可以重复 HashMap TreeMap 是(用二叉树排序) 几个面试常见问题:1.Q:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?   A:Vector和HashT

一大波Java来袭(五)——Java集合概述

把"Java集合"比作是容器,可以把多个对象(实际:是对象的引用),扔在容器中. JDK1.5之前,被丢进集合中的对象,会丢失起数据类型.默认为Object类型 JDK1.5之后,不会丢失数据类型,因为引入了"泛型"(作为下文重点) 本文将结合数据结构,重点讲述Java的4种集合体系的功能和用法,并给出不同应用场景改如何选择? 一.同样是用于"存储数据",既可以使用"数组",有可以使用"集合",有什么区别吗

Java集合总览

这篇文章总结了所有的Java集合(Collection).主要介绍各个集合的特性和用途,以及在不同的集合类型之间转换的方式. Arrays Array是Java特有的数组.在你知道所要处理数据元素个数的情况下非常好用.java.util.Arrays 包含了许多处理数据的实用方法: Arrays.asList:可以从 Array 转换成 List.可以作为其他集合类型构造器的参数. Arrays.binarySearch:在一个已排序的或者其中一段中快速查找. Arrays.copyOf:如果你

【Java集合源码剖析】HashMap源码剖析

转载请注明出处:http://blog.csdn.net/ns_code/article/details/36034955 HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap. HashMap 实现了Serializable接口,因此它支持序列化,