1,考查的是String类中的equals和hashCode重写:
/*每个Foo对象都有不同的hashCode値,
* list的contains不会钓鱼对象1的hashCode(),只调用对象1的equals去和list集合的每个元素比较
* 如果返回true就说明list集合已经有对象1元素了,如果都返回false说明list集合中没有对象1这个元素
* 3.set和map的contains会先调用对象1的hashCode値,将hashCode方法返回的hashCode値和set集合里的每一个元素的hashCode
* 値相比较,如果都不相同,就证明set集合里没有这个元素,就不再调用equals方法
* 如果相同了还要调用equals去比较这两个具有相同的hashCode値的对象,如果结果相同就说明set集合已经有这个对象了*/
import java.util.ArrayList;
import java.util.HashSet;
public class RandomWriteChars {
public static void main(String[] args) {
ArrayList aList=new ArrayList();
aList.add(new Foo(1));
HashSet set=new HashSet();
set.add(new Foo(1));
//输出结果为true false
System.out.println(aList.contains(new Foo(1))+" "+set.contains(new Foo(1)));
//输出结果为true true
System.out.println(new Foo(1).equals(new Foo(1))+" "+aList.contains(new Foo(1)));
}
}
class Foo{
int v;
public Foo(int v){
this.v=v;
}
public boolean equals(Object o){
if(o instanceof Foo){
Foo foo=(Foo)o;
return v==foo.v;
}
return false;
}
public int hashCode(){
return super.hashCode();
}
}
2,利用for循环将集合中的元素删除
//利用for循环将集合中的每个元素删除
//删除集合元素时,必须从尾部开始删除,依次删除
import java.util.ArrayList;
public class TestArrayList_2 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add("java");
list.add("php");
list.add(".net");
System.out.println(list);
for(int i=list.size()-1;i>=0;i--){
list.remove(i);
}
System.out.println(list);
}
}
import java.util.ArrayList;
import java.util.List;
public class TestArrayList {
public static void main(String[] args) {
List list=new ArrayList();
list.add(1);
list.add(2);
list.add(3);
for(int i=0;i<list.size();i++){
Integer obj=(Integer)list.get(i);
System.out.println(obj+1);
}
}
}
3.
//本题目考查了String类在堆内存永远不变的性质
//错误原因,未认真分析画图
/*内部类有静态内部类,匿名内部类,成员内部类,局部内部类
* 给ArrayList集合添加元素应该调用add方法
* 给HashMap集合添加元素应该调用put方法*/
public class TestBase {
private void test(){
String aStr=" One ";
String bStr=aStr;
bStr=aStr.trim();
System.out.println(aStr+","+bStr);
}
public static void main(String[] args) {
TestBase tb=new TestBase();
tb.test();
}
}
4.
//本题目考查了SimpleDateFormat类对时间格式的封装,
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class TestCalendar {
public static void main(String[] args) {
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.YEAR, 2012);
calendar.set(Calendar.MONTH, 0);
calendar.set(Calendar.DATE, 32);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/M/dd");
String time=sdf.format(calendar.getTime());
System.out.println(time);
}
}
5.增强的for循环
import java.util.ArrayList;
//本试题考查的增强的for循环
public class TestFanxing {
public static void main(String[] args) {
ArrayList<Person> list=new ArrayList();//在此也可以添加泛型
Person p1=new Person();
p1.setIdCard(new Long(1000));
p1.setUserName("terry");
Person p2=new Person();
p2.setIdCard(new Long(1002));
p2.setUserName("tom");
list.add(p1);//add方法添加后保存的均为Object类型
list.add(p2);
for(Person person:list){//本试题主要考查的是增强的for循环
//Person person=(Person)object;
System.out.println(person.getIdCard()+","+person.getUserName());
}
}
}
class Person{
private Long idCard;
private String userName;
public void setIdCard(Long long1) {
this.idCard=long1;
}
public String getUserName() {
return userName;
}
public Long getIdCard() {
return idCard;
}
public void setUserName(String string) {
this.userName=string;
}
}
import java.util.HashMap;
import java.util.Map;
public class TestMap {
public static void main(String[] args) {
Map<String,Double>map=new HashMap<String,Double>();
map.put("tom",123.6);
map.put("jim",234.5);
map.put("terry", 45.3);
map.put("jim", map.get("jim")+100);
for(int i=0;i<map.size();i++){
map.keySet();
//System.out.println(map.keySet());
System.out.println(map.entrySet());
}
}
}
编程题:写一个trim方法去掉字符串 Hello! Game_programming world!多余的空格,使两个相邻单词之间有且只有一个空格,提示各异以上的空白的正则表达式为“\\s”
public class ThreadDemo {
public static void main(String[] args) {
String s=" Hello! Game_programming world! woaini nibudo ng ";
//String s1=trim(s);
String s1=s.trim();
String s2=trim2(s1);
System.out.println(s2);
}
private static String trim2(String s) {
String str=s.replaceAll("(\\s)+", " ");
return str;
}
}