第三次周考错题

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;
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值