1.  
  2. import java.util.*;
  3.  
  4. public class Birthdays {
  5. public static void main(String[] args){
  6. Map<Friends, String> hm = new HashMap<Friends,String>();
  7. Friends f1 = new Friends("Charis");
  8. Friends f2 = new Friends("Darling");
  9. hm.put(f1, "summer 2009");
  10. hm.put(f2, "spring 2002");
  11. System.out.println(hm.get(f1));
  12. Friends f3 = new Friends("Darling");
  13. System.out.println(hm.get(f3));
  14. }
  15. }
  16. class Friends{
  17. String name;
  18. Friends(String n){
  19. name = n;
  20. }
  21. }

结果:

  1. summer 2009
  2. null

  

2.  enum用法 

  1. public class WeatherTest {
  2. static Weather w;
  3. public static void main(String[] args){
  4. System.out.println(w.RAINY.count+" "+w.Sunny.count+" ");
  5. }
  6. }
  7. enum Weather{
  8. RAINY, Sunny;
  9. int count = 0;
  10. Weather(){
  11. System.out.print("c ");
  12. count++;
  13. }
  14. }

结果

  1. c c 1 1
  1. public class WeatherTest {
  2. static Weather w;
  3. public static void main(String[] args){
  4. System.out.println(w.RAINY+" "+w.Sunny+" ");
  5. }
  6. }
  7. enum Weather{
  8. RAINY(1), Sunny(2);
  9. private int n;
  10. private Weather(int n){
  11. this.n=n;
  12. }
  13. @Override
  14. public String toString() {
  15. return String.valueOf(this.n);
  16. }
  17. }

结果

  1. 1 2

枚举的遍历:

  1. public class WeatherTest {
  2. enum Weather{
  3. RAINY(1), Sunny(2);
  4. private int n;
  5. private Weather(int n){
  6. this.n=n;
  7. }
  8. @Override
  9. public String toString() {
  10. return String.valueOf(this.n);
  11. }
  12. }
  13. public static void main(String[] args){
  14. Weather[] allW = Weather.values();
  15. for(Weather w: allW)
  16. System.out.print(w+" ");
  17. }
  18. }

结果同上, 1 2

3. 数值类型题

  1. public class Dec26 {
  2.  
  3. public static void main(String[] args){
  4. short a1=6;
  5. new Dec26().go(a1);
  6. new Dec26().go(new Integer(7));
  7. }
  8.  
  9. void go(short x){
  10. System.out.print("S ");
  11. }
  12. void go(Long x){
  13. System.out.print("L ");
  14. }
  15. void go(int x){
  16. System.out.print("i ");
  17. }
  18. void go(Number n){
  19. System.out.print("N ");
  20. }
  21.  
  22. }

结果:

  1. S N

4. switch, case  

  1. public class Humping {
  2. public static void main(String[] args) {
  3. String r="-";
  4. char[] c={'a','b','c','z'};
  5. for(char c1:c)
  6. switch(c1){
  7. case 'a':
  8. r+="a";
  9. case 'b':
  10. r+="b";
  11. break;
  12. default:
  13. r+="X";
  14. case 'z':
  15. r+="z";
  16. }
  17. System.out.println(r);
  18. }
  19. }

结果:

  1. -abbXzz

5. HashMap键值为空的问题

HashMap:适用于在Map中插入、删除和定位元素。 
Treemap:适用于按自然顺序或自定义顺序遍历键(key)。

两者都是非线程安全,前者无排序,后者会自动排序

Ø  HashMap里面存入的键值对在取出的时候是随机的,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。在Map 中插入、删除和定位元素,HashMap是最好的选择。

Ø  TreeMap取出来的是排序后的键值对。插入、删除需要维护平衡会牺牲一些效率。但如果要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。

本测试增加和查找功能,HashMap比TreeMap的效率要高。

  1. import java.util.*;
  2. public class Garage {
  3.  
  4. public static void main(String[] args) {
  5. Map<String,String> hm=new HashMap<String,String>();
  6. String[] k={null,"2","3",null,"5"};
  7. String[] v={"a","b","c","d","e"};
  8. for(int i=0;i<5;i++){
  9. hm.put(k[i],v[i]);
  10. System.out.print(hm.get(k[i])+" ");
  11. }
  12. System.out.print(hm.size()+" "+hm.values()+"\n");
  13. }
  14. }

结果

  1. a b c d e 4 [c, d, b, e]

换成TreeMap报错, 所以 TreeMap键值不允许空 

null和" "的区别:

  1. import java.util.*;
  2. public class Garage {
  3.  
  4. public static void main(String[] args) {
  5. Map<String,String> hm=new HashMap<String,String>();
  6. String[] k={null,"2","3"," ","5"};
  7. String[] v={"a","b","c","d","e"};
  8. for(int i=0;i<5;i++){
  9. hm.put(k[i],v[i]);
  10. System.out.print(hm.get(k[i])+" ");
  11. }
  12. System.out.print(hm.size()+" "+hm.keySet()+" "+hm.values()+"\n");
  13. }
  14. }

结果

  1. a b c d e 5 [3, null, 2, , 5] [c, a, b, d, e]

6. Exception

  1. public class ClassA {
  2. static String s="";
  3. public static void main(String[] args){
  4. try{
  5. doStuff();
  6. }
  7. catch(Exception ex){
  8. s+="c1 ";
  9. }
  10. System.out.println(s);
  11. }
  12. static void doStuff() throws RuntimeException{
  13. try{
  14. s+="t1 ";
  15. throw new IllegalArgumentException();
  16. }
  17. catch(IllegalArgumentException ie){
  18. s+="c2 ";
  19. }
  20. throw new IllegalArgumentException();
  21. }
    }

结果

  1. t1 c2 c1

7. Arrays.binarySearch用法

如果要搜索的元素key在指定的范围内,则返回搜索键的索引;否则返回-1或者"-"(插入点)。
eg:
1.该搜索键在范围内,但不在数组中,由1开始计数;
2.该搜索键在范围内,且在数组中,由0开始计数;
3.该搜索键不在范围内,且小于范围内元素,由1开始计数;
4.该搜索键不在范围内,且大于范围内元素,返回-(endIndex + 1);(特列)

  1. public class Unturned {
  2. public static void main(String[] args){
  3. String[] towns = {"aspen","vail","t-ride","dillon"};
  4. //MySort ms=new MySort();
  5. Arrays.sort(towns);
  6. System.out.println(Arrays.binarySearch(towns,"dillon"));
  7. }
  8. }

结果: 1

  1. import java.util.Arrays;
  2. import java.util.Comparator;
  3.  
  4. public class Unturned {
  5. public static void main(String[] args){
  6. String[] towns = {"aspen","vail","t-ride","dillon"};
  7. MySort ms=new MySort();
  8. Arrays.sort(towns,ms);
  9. System.out.println(Arrays.binarySearch(towns,"dillon"));
  10. }
  11. static class MySort implements Comparator<String>{
  12. public int compare(String a, String b) {
  13. return b.compareTo(a);
  14. }
  15. }
  16. }

结果: -1  

  

  

 

 

 

  

 

JAVA语法题的更多相关文章

  1. 这道Java基础题真的有坑!我求求你,认真思考后再回答。

    本文目录 一.题是什么题? 二.阿里Java开发规范. 2.1 正例代码. 2.2 反例代码. 三.层层揭秘,为什么发生异常了呢? 3.1 第一层:异常信息解读. 3.2 第二层:抛出异常的条件解读. ...

  2. 【原创】这道Java基础题真的有坑!我也没想到还有续集。

    前情回顾 自从我上次发了<这道Java基础题真的有坑!我求求你,认真思考后再回答.>这篇文章后.我通过这样的一个行文结构: 解析了小马哥出的这道题,让大家明白了这题的坑在哪里,这题背后隐藏 ...

  3. Java语法

    java语法: 一个java程序可以说是一系列对象的集合,而这些对象都要通过调用彼此的方法来协同工作. 对象: 对象是一个实例,例如:一只猫,它是一个对象,有状态和行为.它的状态状态有:颜色,名字,品 ...

  4. Java语法糖1:可变长度参数以及foreach循环原理

    语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...

  5. 50道经典的JAVA编程题(汇总)

    这是一次不可思议的编程历程.从2013年的最后一天开始做这份题,中间连续好几天的考试,包括java考试(今天考试的JAVA编程题),直到今天完成了.挺有成就感的...废话不多说了,来电实质性的吧. 全 ...

  6. 50道经典的JAVA编程题(46-50)

    50道经典的JAVA编程题(46-50),最后五道题了,这是一个美妙的过程,编程真的能让我忘掉一切投入其中,感觉很棒.今天下午考完微机原理了,大三上学期就这样度过了,这学期算是解放了,可是感觉我还是没 ...

  7. 50道经典的JAVA编程题(41-45)

    50道经典的JAVA编程题(41-45),苦逼的程序猿,晚上睡不着了编程吧~今天坚持做10道题!发现编程能是我快乐...O(∩_∩)O哈哈~能平静我烦乱的心,剩下5道题留到考试完了再做吧!该睡觉了.. ...

  8. 今天考试的JAVA编程题

    今天早上考了java, 题目感觉还不错, 共四道题,有一道定义类的没啥意思就没列出来. 这三道题目还是不错的,特别是第一道,大一上学期学linux的时候,那时还没学C语言呢,准确的来说,还不知道什么是 ...

  9. 50道经典的JAVA编程题(36-40)

    50道经典的JAVA编程题(36-40),今天晚上心情压抑,不爽,继续做题,管它明天考试,我继续我的java,一个周末都在看微机原理看得的很头疼啊~明天该挂科就挂吧,不在乎了~~~ [程序36] Ar ...

随机推荐

  1. 更改 android realtek的系统权限

    由于在 在删除系统的文件时候出现 Read-only file system,所以要获取权限. 推出shell adb mount mount -o rw,remount /system 就可以了

  2. 安装MSYS2过程遇到的问题及解决记录

    1.在安装结束后按照官方教程开始更新系统是遇到了如下的错误 could not open file /var/lib/pacman/sync/msys32.db: Unrecognized archi ...

  3. Openlayer 3 图层列表控件(自定义)

    <body><div id="map"></div><div id="layerControl" class=&quo ...

  4. hadoop在子节点上没有datanode进程

    经常会有这样的事情发生:在主节点上start-all.sh后,子节点有TaskTracker进程,而没有DataNode进程.环境:1NameNode   2DataNode三台机器,Hadoop为1 ...

  5. Bootstrap学习 - JavaScript插件

     模态框 <div class="modal" id="myModal" tabindex="-1" role="dialo ...

  6. Python -- 文档测试

    Python内置的“文档测试”(doctest)模块可以直接提取注释中的代码并执行测试. 例子: # mydict2.py class Dict(dict): ''' Simple dict but ...

  7. IDL 实现PCA算法

    在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析.简化数据集的技术.主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特 ...

  8. 转:Selenium Grid+JAVA +Windows 配置(Selenium 2.0)

    Selenium-Grid 允许你在多台机器的多个浏览器上并行的进行测试,也就是说,你可以同时运行多个测试.本质上来说就是,Selenium-Grid 支持分布式的测试执行.它可以让你的测试在一个分布 ...

  9. 当浏览器窗体改变时,div跟着变动方法

    $(function(){ resizeU(); $(window).resize(resizeU); }); function resizeU() { var divkuangH = $(windo ...

  10. nested query for "pat2" table

    mysql> select t.appln_id, t.filing_date, t.appln_kind, t.people, GROUP_CONCAT(pu.publn_kind) from ...