安卓培训(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++;

}

}

}

时间: 2024-10-15 16:35:48

安卓培训(java篇)第十天—容器(下)的相关文章

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

容器又叫集合,可以存放不同类型的元素,且空间足倍增加: 区分:Collection与Map没有继承关系: Collection常用方法: size():容器的容量: clear():清除容器当中所有的元素: add(Object o):添加任意类型的元素: remove(Object o):移除指定的元素: removeALL(Collection c):移除指定的容器: contains(Object o):判断给定的元素是否包含在容器中: Set接口:无序不可重复: 什么是无序?无序和随机之

Java Web总结十六之一自定义标签

一.自定义标签简介 1.为什么要使用自定义标签? 自定义标签主要用于移除Jsp页面中的<%java%>代码. 2.开发自定义标签的步骤: 1)开发自定义标签处理类,该类需要实现SimpleTag接口/SimpleTagSupport类,重写doTag()方法. 2)编写标签库描述符(tld)文件,在tld文件中对自定义标签进行描述,并放置在WEB-INF/目录下. 3)完成以上操作,即可在JSP页面中导入和使用自定义标签. 二.自定义标签描述 1.实现SimpleTag接口的标签通常称为简单标

Java进阶(三十五)java int与integer的区别

Java进阶(三十五)java int与integer的区别 前言 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象. 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1; Integer i= new In

疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程java任务timerstring 2009-01-16 21:12 6722人阅读 评论(0) 收藏 举报  分类: J2SE(63)  版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天讲了Swing基本的控件,今天开始讲特殊控件.一天讲2个吧,首先讲用JProgressBar,Pro

Java入门记(五):容器关系的梳理(下)——Map

注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见Map的接口和实现.与Collection相比,继承关系简单不少. 一.Map接口和AbstractMap抽象类 Map接口除了增加映射.根据key获取value.判断映射中的key或value是否存在.删除映射的基本方法外,还包含了返回包含所有key的Set.包含所有value的collection

【Java心得总结七】Java容器下——Map

我将容器类库自己平时编程及看书的感受总结成了三篇博文,前两篇分别是:[Java心得总结五]Java容器上——容器初探和[Java心得总结六]Java容器中——Collection,第一篇从宏观整体的角度对Java中强大的容器类库做了一个简单总结而第二篇专门针对容器类库中的Collection部分进行了总结.这篇博文将对容器类库中的Map部分进行一个整理总结. 一.初识Map Map:一组成对的“键值对”对象,允许你使用键来查找值.(注:Map其实是将键与值形成的二元组按照一维线性的方式组织起来,

Java编程思想(十八) —— 再谈反射

在Java编程思想(十五) -- 类型信息之反射和Java编程思想(十六) -- 联系JVM再谈Class,书上只用了3页就讲完了,还有讲了那么多Class的东西,接下来要从反射中怎么用,自己结合API和其他资料再写多一些. 示例:Test.java public class Test { public Test() {     }      public Test(int i) {         System.out.println(i);     } private void pri()

事件驱动模型实例详解(Java篇)

或许每个软件从业者都有从学习控制台应用程序到学习可视化编程的转变过程,控制台应用程序的优点在于可以方便的练习某个语言的语法和开发习惯(如.net和java),而可视化编程的学习又可以非常方便开发出各类人机对话界面(HMI).可视化编程或许是一个初学者开始对软件感兴趣的开始,也可能是一个软件学习的里程碑点,因为我们可以使用各类软件集成开发环境(IDE)方便的在现成的界面窗口上拖放各类组件(Component),这类组件包括我们常见的按钮(Button),单选按钮(Radio Button),复选框

总结一下阿里云OSS的开发坑(Java篇)

一.序言 OSS(Object Storage Service)是阿里云提供的一款云存储服务,具有海量.安全.低成本.高可靠的特点. 由于客户选择了OSS,我们作为开发方也开始接触它.在实际开发过程中遇到了各种各样的坑,经自己多次实践及阿里技术人员的协助,终得以完成任务. 阿里方面为OSS提供了多种语言的开发接口,我们用到了其中两种:Java和C/C++.本文为Java篇,C/C++的将在另一篇给出. 二.OSS的一些概念 EndPoint, accessKeyID, accessKeySecr

Java进阶(三十四)Integer与int的种种比较你知道多少?

Java进阶(三十四)Integer与int的种种比较你知道多少? 前言 如果面试官问Integer与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类:int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱.所以我对它们进行了总结,希望对大家有帮助. 首先看代码: package