• java之集合类详解


    java集合类图

      

    上述所有集合类都实现了Iterator,这是一个用于便利集合中元素的接口,主要包含hashNaxt()Next()Remove()三种方法

    常见的集合有:

    MapConllection是所有集合框架的父接口

    Collection接口下的子接口包含:set接口和list接口

    Map接口下的实现类有:HashMapTreeMapHashtable

    Set接口下的实现类:HashSetTreeSetLinkedHashSet

    List接口下的实现类:ArrayLIstLinkedListStackVector

    HashMapHashtable的区别

    HashMap是没有考虑同步的,是线程不安全的,Hashtable使用了syncharonized关键字,是线程安全的

    前者允许null作为key,后者不予许null作为key

    详解

    hashSetSet的一个子接口,主要特点是:里面不能存放重复元素,而且采用散列的储存方法所有没有顺序,这里的顺序是指:输入和插入的元素顺序不一致

    代码实例:HashSet:

    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    
    public class HsahSetDemo {
        
        public static void main(String[] args){
            Set<String> set = new HashSet<String>();
            
            set.add("a");
            set.add("b");
            set.add("c");
            set.add("b");
            set.add("e");
            set.add("c");
            
            //使用Itertor遍历集合
            Iterator<String> iter = set.iterator();
            while (iter.hasNext()) {
                System.out.print(iter.next() + "   ");
            }
            System.out.println();
            
            //使用For Each输出集合
            for (String e: set) {
                System.out.print(e + "    ");
            }
            System.out.println();
            
            //使用toString输出集合
            System.out.println(set);
        }
    
    }

    代码实例:setTest:

    package www.demo.BubbleSort;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Scanner;
    import java.util.Set;
    
    public class setTest {
        
        public static void main(String[] args) throws FileNotFoundException{
            
            Set<String> works = new HashSet<String>();
            
            //通过输入流打开文献
            //方法一:这个方法不需要抛出异常
            InputStream inputStream = setTest.class.getResourceAsStream("Alice.txt");
            
            //需要抛出异常
            InputStream inStream = new FileInputStream("F:\workspace\Alice.txt");
            Scanner in = new Scanner(inStream);
            while (in.hasNext()) {
                works.add("");
            }
            Iterator<String> iter = works.iterator();
            for (int i = 0; i < 5; i++) {
                if(iter.hasNext()){
                    System.out.println(iter.next());
                }
                System.out.println(works.size());
            }
        }
    }

    ArrayList

    ArrayListlist的一个子类,他和hashSet相反,允许元素重复,所以元素都是有序的,元素被访问的顺序取决于集合的类型,如果对ArrayList访问,迭代器将从索引0开始,每迭代一次,索引值加1

    代码实例:ArrayListDemo:

    package www.demo.arraylist;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    /**
     * 允许重复
     * @author Administrator
     */
    public class ArrayListDemo {
    
        public static void main(String[] args) {
            List<String> arrayList = new ArrayList<String>();
    
            arrayList.add("a");
            arrayList.add("a");
            arrayList.add("bb");
            arrayList.add("bb");
            arrayList.add("c");
            arrayList.add("c");
            arrayList.add("r");
    
            // 使用iterator输出
            Iterator<String> iter = arrayList.iterator();
            while (iter.hasNext()) {
                System.out.print(iter.next() + "   ");
            }
            System.out.println();
    
            // 使用for each输出
            for (String ite : arrayList) {
                System.out.print(ite + "   ");
            }
            System.out.println();
    
            // 使用toString输出
            System.out.println(arrayList);
        }
    
    }

    以上代码均已测试

  • 相关阅读:
    数据分析05 /pandas的高级操作
    ABP之应用服务(2)
    ABP之应用服务(1)
    ABP之仓储
    ABP之创建实体
    ABP之框架体系
    ABP之项目的搭建
    2018年,加油!!!
    WF的简单使用
    WCF之通信工厂的简单使用
  • 原文地址:https://www.cnblogs.com/Momery/p/java.html
Copyright © 2020-2023  润新知