java笔记五

ArrayList和LinkedList的比较
ArrayList底层采用数组完成,而LinkedList则是以一般的双向链表(double-linked list)完成,其内每个对象除了数据本身外,还有两个 引用,分别指向前一个元素和后一个元素。
如果我们经常在List的开始处增加元素,或者在List中进行插入和删除操作,我们应该使用LinkedList,否则的话,使用ArrayList将更加快速。

 

java 代码
  1. //LinkedList实现堆栈   
  2. import java.util.*;   
  3. public class MyStack {   
  4.  private LinkedList ll = new LinkedList();   
  5.  public void push(Object o) {   
  6.   ll.addFirst(o);   
  7.  }   
  8.  public Object pop() {   
  9.   return ll.removeFirst();   
  10.  }   
  11.  public Object peek() {   
  12.   return ll.getFirst();   
  13.  }   
  14.  public boolean empty() {   
  15.   return ll.isEmpty();   
  16.  }   
  17.  public static void main(String[] args) {   
  18.   MyStack ms = new MyStack();   
  19.   ms.push("one");   
  20.   ms.push("two");   
  21.   ms.push("three");   
  22.   System.out.println(ms.pop());   
  23.   System.out.println(ms.peek());   
  24.   System.out.println(ms.pop());   
  25.   System.out.println(ms.empty());   
  26.  }   
  27. }   
  28. /*结果  
  29. three  
  30. two  
  31. two  
  32. false  
  33. */  
  34.   

 

java 代码
  1. //LinkedList实现队列   
  2. import java.util.*;   
  3. public class MyQueue {   
  4.  private LinkedList ll = new LinkedList();   
  5.  public void put(Object o) {   
  6.   ll.addLast(o);   
  7.  }   
  8.  public Object get() {   
  9.   return ll.getFirst();   
  10.  }   
  11.  public boolean empty() {   
  12.   return ll.isEmpty();   
  13.  }   
  14.     
  15.  public static void main(String[] args) {   
  16.   MyQueue mq = new MyQueue();   
  17.   mq.put("zhangsan");   
  18.   mq.put("lisi");   
  19.   mq.put("wangwu");   
  20.   System.out.println(mq.empty());   
  21.   System.out.println(mq.get());   
  22.  }   
  23. }   
  24. /*  
  25. false  
  26. zhangsan  
  27.  *   
  28.  */  


 

java 代码
  1.   
  2. //HashSet用法例子   
  3. import java.util.*;   
  4.   
  5. public class HashSetTest {   
  6.  public static void main(String[] args) {   
  7.   HashSet hs = new HashSet();   
  8.   // hs.add("one");   
  9.   // hs.add("two");   
  10.   // hs.add("three");   
  11.   // hs.add("one");   
  12.   hs.add(new Student(1"zhangsan"));   
  13.   hs.add(new Student(2"lisi"));   
  14.   hs.add(new Student(3"wangwu"));   
  15.   hs.add(new Student(1"zhangsan"));   
  16.   Iterator iter = hs.iterator();   
  17.   while (iter.hasNext()) {   
  18.    System.out.println(iter.next());   
  19.   }   
  20.  }   
  21. }   
  22.   
  23. class Student {   
  24.  int num;   
  25.   
  26.  String name;   
  27.   
  28.  Student(int num, String name) {   
  29.   this.num = num;   
  30.   this.name = name;   
  31.  }   
  32.   
  33.  public int hashCode() {   // 重写hashCode()方法覆盖   
  34.   
  35.   return num * name.hashCode();   
  36.  }   
  37.   
  38.  public boolean equals(Object o) {//重写equals()方法覆盖   
  39.   Student s = (Student) o;   
  40.   return num == s.num && name.equals(s.name);   
  41.  }   
  42.   
  43.  public String toString() {   
  44.   return num + ":" + name;   
  45.  }   
  46. }   
  47. /*结果   
  48. 1:zhangsan   
  49. 3:wangwu  
  50. 2:lisi  
  51.  *   
  52.  */  
  53.   

 

java 代码
  1. /*  
  2.  * TreeSet  
  3. public TreeSet()构造一个新的空 set,该 set 按照元素的自然顺序排序。  
  4. 插入该 set 的所有元素都必须实现 Comparable 接口。而且,  
  5. 所有此类元素必须是可相互比较的:为 set 中的任何元素 e1 和 e2   
  6. 执行 e1.compareTo(e2) 时必须不抛出 ClassCastException。  
  7. 如果用户尝试将违背此约束的元素添加到 set 中(例如,用户试图将字符  
  8. 串元素添加到其元素为整数的 set 中),则 add(Object) 调用将抛出  
  9.  ClassCastException。   
  10.  */  
  11.   
  12. import java.util.*;   
  13. public class TreeSetTest {   
  14.  public static void main(String[] args) {   
  15.   TreeSet ts = new TreeSet(new Student.StudentComparator());   
  16. //  ts.add("winsun");   
  17. //  ts.add("weixin");   
  18. //  ts.add("mybole");   
  19.   ts.add(new Student(2,"zhangsan"));   
  20.   ts.add(new Student(1,"lisi"));   
  21.   ts.add(new Student(3,"wangwu"));   
  22.   ts.add(new Student(3,"mybole"));   
  23.   Iterator iter = ts.iterator();   
  24.   while(iter.hasNext()) {   
  25.    System.out.println(iter.next());   
  26.   }    
  27.  }   
  28. }   
  29.   
  30.   
  31. class Student implements Comparable   
  32. {   
  33.  int num;   
  34.  String name;   
  35.  static class StudentComparator implements Comparator   
  36.  {   
  37.   public int compare(Object o1,Object o2)   
  38.   {   
  39.    Student s1=(Student)o1;   
  40.    Student s2=(Student)o2;   
  41.    int result=s1.num > s2.num ? 1 : (s1.num==s2.num ? 0 : -1);   
  42.    if(result==0)   
  43.    {   
  44.     result=s1.name.compareTo(s2.name);   
  45.    }   
  46.    return result;   
  47.   }   
  48.  }   
  49.  Student(int num,String name)   
  50.  {   
  51.   this.num=num;   
  52.   this.name=name;   
  53.  }   
  54.     
  55.  public int compareTo(Object o)   
  56.  {   
  57.   Student s=(Student)o;   
  58.   return num > s.num ? 1 : (num==s.num ? 0 : -1);   
  59.  }   
  60.  public String toString()   
  61.  {   
  62.   return num+":"+name;   
  63.  }   
  64. }   
  65.   
  66. /*  
  67. 1:lisi  
  68. 2:zhangsan  
  69. 3:mybole  
  70. 3:wangwu  
  71.  */  
  72. */   
  73.   

 

java 代码
  1.   
  2. //HashMap用法   
  3. import java.util.*;   
  4. public class HashMapTest {   
  5. // printElements()通过迭代器打印集合中的元素   
  6.  public static void printElements(Collection c)   
  7.  {   
  8.   Iterator it=c.iterator();   
  9.   while(it.hasNext())   
  10.   {   
  11.    System.out.println(it.next());   
  12.   }   
  13.  }   
  14.  public static void main(String[] args) {   
  15.   HashMap hm = new HashMap();   
  16.   hm.put("one""zhangsan");   
  17.   hm.put("two""lisi");   
  18.   hm.put("three""wangwu");   
  19.      
  20.   System.out.println(hm.get("one"));   
  21.   System.out.println(hm.get("two"));   
  22.   System.out.println(hm.get("three"));   
  23.      
  24.   Set keys=hm.keySet();//返回此映射中所包含的键的 set 视图。   
  25.   System.out.println("key:");   
  26.   printElements(keys);   
  27.      
  28.   Collection values = hm.values();//返回此映射所包含的值的 collection 视图。   
  29.   System.out.println("values:");   
  30.   printElements(values);   
  31.      
  32.   Set entry = hm.entrySet();//返回此映射所包含的映射关系的 collection 视图   
  33.   System.out.println("entry:");   
  34.   printElements(entry);   
  35.  }   
  36.   
  37. }   
  38. /*  
  39. zhangsan  
  40. lisi  
  41. wangwu  
  42. key:  
  43. one  
  44. two  
  45. three  
  46. values:  
  47. zhangsan  
  48. lisi  
  49. wangwu  
  50. one=zhangsan  
  51. two=lisi  
  52. three=wangwu  
  53.  */  
  54.   

 

更多方法参看  java.util.*  里面相应的类。。。。。。。。。。。。。。

 

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值