zoukankan      html  css  js  c++  java
  • 杰瑞教育12

    HashMap接口常用方法:

     Object put(Object key,Object val):以“键-值对”的方式进行存储。

     Object get(Object key):根据键返回相关联的值,如果不存在指定的键,返回null。

     Object remove(Object key):删除由指定的键映射的“键-值对”。

     int size():返回元素个数。

     Set KeySet():返回键的集合。

    Collection values():返回值的集合。

     boolean containsKey(Object key):如果存在由指定的键映射的“键-值对”,返回true。

    HashMap<Integer, String> map=new HashMap<Integer, String> ();

           map.put(1, "one");

           map.put(2, "two");

           map.put(3, "three");

           System.out.println(map.get(2));

           System.out.println(map);

           System.out.println(map.remove(3));

           System.out.println(map.size());

           System.out.println(map.keySet());

           System.out.println(map.values());

           System.out.println(map.containsKey(1));

           System.out.println(map.containsValue("two"));

    Iterator<Map.Entry<Integer, String>>iter=map.entrySet().iterator();

    while(iter.hasNext()){

               Map.Entry<Integer, String> entry=iter.next();

               Integer key=entry.getKey();

               System.out.println("key:"+key+",");

               String value=entry.getValue();

               System.out.println("value:"+value+",");

    }

    Iterator迭代器

    Map键值对

    Map.Entry键值对存储的数据。

    Map.Entry的泛型结构跟Map的存储数据类型是一致的。

    Map.entrySet()返回的是set集合。

    这个set存放的就是<Map.Entry<K,V>>,数据源

    entry.setValue(100);改变全部的值。

    Java集合框架将针对不同数据结构算法的实现都保存在工具类中。

    Collection类定义了一系列用于操作集合的静态方法。

    import java.util.HashMap;

    import java.util.Iterator;

    import java.util.Map;

    import java.util.Scanner;

    public class EmailTest {

        static Scanner in=new Scanner(System.in);

        static HashMap<String, String> map=new HashMap<String, String>();

        public void add(){

           while(true){

               System.out.print("请输入邮箱:");

               String email=in.next();

               String[] email1=email.split("@");

               map.put(email1[0], email1[1]);

               System.out.print("是否继续?y/n:");

               if(in.next().charAt(0)=='n'){

                  in.close();

                  return;

               }

           }

        }

        public void showAll(){

           Iterator<Map.Entry<String, String>> list=map.entrySet().iterator();

           System.out.print("分离前的邮箱数据:");

           while(list.hasNext()){

               Map.Entry<String, String> iter=list.next();

               System.out.print(iter.getKey()+"@"+iter.getValue()+"   ");

           }

        }

        public void show(){

           Iterator<Map.Entry<String, String>> list=map.entrySet().iterator();

           System.out.println(" 分离结果如下:");

           System.out.println("邮箱名 地址名");

           while(list.hasNext()){

               Map.Entry<String, String> iter=list.next();

               System.out.println(iter.getKey()+" "+iter.getValue());

           }

        }

        public static void main(String[] args) {

           EmailTest test=new EmailTest();

           test.add();

           test.showAll();

           test.show();

        }

    }

    Collections.binarySearch(list,11);查询集合当中是否包含某个元素,查询出对应元素的下标。

    ArrayList<Integer> list1=new ArrayList<>();

    list1.add(1);

    Collections.copy(list,list1);//list为目标集合,list1为原集合,list集合的长度必须大于等于list1的长度。

    System.out.println(list);

     

    Collections.swap(list,index1,index2);将list集合中两个下标位置的元素对换。

    Collections.replaceAll(list,1,111);将list集合中的1都换成111。

     

    把任何类型对象通过add(Object ob)放入list中,认为只是Object类型。

    通过get(int index)取出list中元素时必须进行强制类型转换,繁琐而且容

    易出现异常。

     

    泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数

    据类型被指定为一个参数,用在类、接口和方法的创建中。在没有泛型的情况下,

    通过对类型Object的引用来实现参数的“任意化”,“任意化”的缺点是要做显

    式的强制类型转换。

     

    1.泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。

    2.同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型

    类实例是不兼容的。

    3.泛型的类型参数可以有多个。

    4.泛型的参数类型可以使用extends语句,例如:<T extends superclass>,习

    惯上称为“有界类型”。

    5.泛型的参数类型还可以是通配符类型。例如:Class<?>

    classType=Class.forName(“java.lang.String”)

  • 相关阅读:
    使用jvisualvm和飞行记录器分析Java程序cpu占用率过高
    Callable、Future和FutureTask
    CountDownLatch(闭锁)
    ArrayBlockingQueue和LinkedBlockingQueue分析
    并发容器之CopyOnWriteArrayList(转载)
    svn 文件夹 无法提交
    rsync 不能同不子级目录的问题
    nginx 匹配.zip .apk 结尾的文件 直接下载
    Android文件Apk下载变ZIP压缩包解决方案
    nginx: [warn] conflicting server name "locahost" on 0.0.0.0:80, ignored
  • 原文地址:https://www.cnblogs.com/rongqingye/p/5779787.html
Copyright © 2011-2022 走看看