安卓培训(java篇)第十天—容器(下)

  1. nextInt()、nextLine()、next()三者之间的区别:

  1. nextIne():以焦点来进行输入值;nextLine():换行输入,焦点变化;next():不换行输入,焦点不变。

  2. 如果nextInt()放在第一个时,需要考虑以下两种情况:

    (1)Scanner s = new Scanner(System.in);

         System.out.println("请输入用户名:");

         int a = s.nextInt(); //有焦点集合在同一行中;

         System.out.println("请输入密码:");

         String b = s.nextLine(); //强制换行,此时会失去焦点,所以无法输入


  3.   (2)Scanner s = new Scanner(System.in);


           System.out.println("请输入用户名:");

           int a=s.nextInt(); //有焦点集合在同一行中;

           System.out.println("请输入密码:");

           String b = s.next(); //此时是在同一行的焦点上,所以能输入;

 

2.Map接口的两个常用方法:

  keySet():返回类型是Set接口;把KEY值放在Set容器里面;

  values():返回类型是Collection接口;把VALUE值放在Collection容器里面;


3.Arrays:针对数组进行排序或搜索

  常用方法:

  sort(数组类型); //从小到大排序;

  toString(数组类型); //返回String类型;


4.Collections:针对容器进行排序或搜索

  常用方法:

  sort(List list); //从小到大排序;

  shuffle(List list); //使用默认随机源对指定列表进行置换。

  reverse(List list); //反转容器中的元素;


5.泛型的增强内容:

定义: 指的是把复杂的类型变成唯一性。必须是引用类型或者自定义类型。

常见的方法有四种:

(1)可以使用< T >来表示任意一种类型,只要主方法里面给它类型即可;

(2)泛型可以继承:< T extends Collection >,此时在方法里面给定类型之后就不可变了;

(3)通配符:< ? extends Collection >,此时在主方法里面可以给定任意一种超级接口下的实现类;

(4)泛型的使用方法:必须在返回值类型前面加< T >;如:public < T > void f( T x ) {}

 常调用的方法:System.out.println(x.getClass().getName());

注意事项:要弄清对象


课后练习:

  1. 已知:有一个二维数组:int[][] a={{5,4},{3,2},{9,7}};

    进行排序,排序后结果为:2,3,4,5,7,9;

    用到的知识点:List接口、Collections类、二维数组遍历;


代码:

public class PaiXu {

    public static void main(String[] args) {

        int[][] a={{5,4},{3,2},{9,7}};

        ArrayList arrayList = new ArrayList();

        //遍历二维数组,并将结果放入容器arrayList中

        for(int[] b:a){

            for(int i:b){

                arrayList.add(i);

            }

        }

        Collections.sort(arrayList);  //对arrayList中的元素进行升序排序

        //遍历排序后的arrayList,并逐个输出其中的元素

        for(int j:arrayList){

            System.out.print(j);

            if(j==arrayList.get(arrayList.size()-1)){

                break;

            }

            System.out.print(",");

        }

    }

}



2.

HashMap做一个替代,{1=“小明”,2=“小东”,3=“小西”}

把“小明”替代“小红”;然后把这里面的value,取出来之后反转; ,西小,东小,红小


代码:

public class ReplaceR {

    public static void main(String[] args) {

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

        hashMap.put(1,"小明");

        hashMap.put(2,"小东");

        hashMap.put(3,"小西");

        hashMap.put(1,"小红"); //把小明替代为"小红"

        Collection<String> value = hashMap.values(); //取出value值

        LinkedList<String> list = new LinkedList<String>();

        for(String str:value){

            list.add(str);

        }

        Collections.reverse(stringBuff);

        StringBuffer stringBuff = null;

        int i==0;

        for(String str1: list) {

            stringBuff = new StringBuffer(str1);

            stringBuff.reverse();

            System.out.print(stringBuff);

            if(i==list.size()-1){   //通过i来消除输出结果中末尾多出的一个","

                break;

            }

            System.out.print(",");

            i++;

        }

    }

}








本文出自 “” 博客,请务必保留此出处http://linyingkun.blog.51cto.com/2393912/1575923

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。