import java.util.*;

public class Birthdays {
public static void main(String[] args){
Map<Friends, String> hm = new HashMap<Friends,String>();
Friends f1 = new Friends("Charis");
Friends f2 = new Friends("Darling");
hm.put(f1, "summer 2009");
hm.put(f2, "spring 2002");
System.out.println(hm.get(f1));
Friends f3 = new Friends("Darling");
System.out.println(hm.get(f3));
}
}
class Friends{
String name;
Friends(String n){
name = n;
}
}

结果:

summer 2009
null

  

2.  enum用法 

public class WeatherTest {
static Weather w;
public static void main(String[] args){
System.out.println(w.RAINY.count+" "+w.Sunny.count+" ");
}
}
enum Weather{
RAINY, Sunny;
int count = 0;
Weather(){
System.out.print("c ");
count++;
}
}

结果

c c 1 1
public class WeatherTest {
static Weather w;
public static void main(String[] args){
System.out.println(w.RAINY+" "+w.Sunny+" ");
}
}
enum Weather{
RAINY(1), Sunny(2);
private int n;
private Weather(int n){
this.n=n;
}
@Override
public String toString() {
return String.valueOf(this.n);
}
}

结果

1 2

枚举的遍历:

public class WeatherTest {
enum Weather{
RAINY(1), Sunny(2);
private int n;
private Weather(int n){
this.n=n;
}
@Override
public String toString() {
return String.valueOf(this.n);
}
}
public static void main(String[] args){
Weather[] allW = Weather.values();
for(Weather w: allW)
System.out.print(w+" ");
}
}

结果同上, 1 2

3. 数值类型题

public class Dec26 {

    public static void main(String[] args){
short a1=6;
new Dec26().go(a1);
new Dec26().go(new Integer(7));
} void go(short x){
System.out.print("S ");
}
void go(Long x){
System.out.print("L ");
}
void go(int x){
System.out.print("i ");
}
void go(Number n){
System.out.print("N ");
} }

结果:

S N

4. switch, case  

public class Humping {
public static void main(String[] args) {
String r="-";
char[] c={'a','b','c','z'};
for(char c1:c)
switch(c1){
case 'a':
r+="a";
case 'b':
r+="b";
break;
default:
r+="X";
case 'z':
r+="z";
}
System.out.println(r);
}
}

结果:

-abbXzz

5. HashMap键值为空的问题

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

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

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

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

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

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

结果

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

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

null和" "的区别:

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

结果

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

6. Exception

public class ClassA {
static String s="";
public static void main(String[] args){
try{
doStuff();
}
catch(Exception ex){
s+="c1 ";
}
System.out.println(s);
}
static void doStuff() throws RuntimeException{
try{
s+="t1 ";
throw new IllegalArgumentException();
}
catch(IllegalArgumentException ie){
s+="c2 ";
}
throw new IllegalArgumentException();
}
}

结果

t1 c2 c1

7. Arrays.binarySearch用法

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

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

结果: 1

import java.util.Arrays;
import java.util.Comparator; public class Unturned {
public static void main(String[] args){
String[] towns = {"aspen","vail","t-ride","dillon"};
MySort ms=new MySort();
Arrays.sort(towns,ms);
System.out.println(Arrays.binarySearch(towns,"dillon"));
}
static class MySort implements Comparator<String>{
public int compare(String a, String b) {
return b.compareTo(a);
}
}
}

结果: -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. 移植iw 到linux平台上。

    https://github.com/174high/iw-3.7-Linux-porting https://github.com/174high/libnl-1.1-stable-master-l ...

  2. linux cat more less head tail

    cat 命令: cat filename  查看一个文件的内容cat[选项][文件]... -b  对非空白行进行编号,行号从1开始-n  和nl命令差不多,对所有行(包括空白行)进行编号输出显示-E ...

  3. WPF中静态引用资源与动态引用资源的区别

    WPF中静态引用资源与动态引用资源的区别   WPF中引用资源分为静态引用与动态引用,两者的区别在哪里呢?我们通过一个小的例子来理解. 点击“Update”按钮,第2个按钮的文字会变成“更上一层楼”, ...

  4. POJ1556 The Doors 叉积+最短路

    题目大意:求从(0,5)到(10,5)的最短距离,起点与终点之间有n堵墙,每个墙有2个门. 题目思路:判断两点间是否有墙(判断两点的连线是否与某一堵墙的线段相交),建立一个图,然后最短路求出就可以了. ...

  5. iOS xcode工程了解

    一个xcode工程默认是在一个主线程的,有需要可以创建分线程 判断是否是主线程: NSThread *thread1=[NSThread currentThread]; if ([red isMain ...

  6. dedecms 标签的基本用法

    1.关键描述调用标签: <meta name="keywords" content="{:fieldname='keywords'/}"> < ...

  7. 转载 Deep learning:四(logistic regression练习)

    前言: 本节来练习下logistic regression相关内容,参考的资料为网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage ...

  8. [转]慎用InputStream的read()方法

    InputStream 此抽象类是表示字节输入流的所有类的超类. 我们从输入流中读取数据最常用的方法基本上就是如下 3 个 read() 方法了: 1 . read () 方法,这个方法 从输入流中读 ...

  9. java 缓冲流

    english.txt The arrow missed the target. They rejected the union demand. Where does this road go to? ...

  10. FZU 2140 Forever 0.5(将圆离散化)

    主要就是将圆离散化,剩下的都好办 #include<iostream> #include<cstdio> #include<cstring> #include< ...