- nextInt()、nextLine()、next()三者之间的区别:
- nextIne():以焦点来进行输入值;nextLine():换行输入,焦点变化;next():不换行输入,焦点不变。
- 如果nextInt()放在第一个时,需要考虑以下两种情况:
(1)Scanner s = new Scanner(System.in);
System.out.println("请输入用户名:");
int a = s.nextInt(); //有焦点集合在同一行中;
System.out.println("请输入密码:");
String b = s.nextLine(); //强制换行,此时会失去焦点,所以无法输入
- (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());
注意事项:要弄清对象
课后练习:
- 已知:有一个二维数组: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++;
}
}
}