corejava学习(集合)

集合

 

Collection(元素,object)

 

 

List          set

(有顺序)       无顺序

 可以重复        不可重复(内容不重复)

 

 

 

 

                              Sortedset

 

 

Collections.sort()只能对list排序  排序规则通过实现comparable接口

import java.util.*;

public class TestSort {

    public static void main(String[] args) {

           List list=new ArrayList();

           list.add(new Student("Liucy",30));

           list.add(new Student("George",40));

           list.add(new Student("Huxz",18));

           list.add(new Student("Luxw",25));

           Collections.sort(list);

           print(list);

    }

    static void print(Collection con){

           Iterator it=con.iterator();

           while(it.hasNext()){

                  Object o=it.next();

                  System.out.println(o);

           }

    }

}

 

结果:

Student name=George  age=40

Student name=Huxz  age=18

Student name=Liucy  age=30

Student name=Luxw  age=25

 

Arraylist            数组

轻量级                            线程不安全

查询           增删  

Vector               数组

重量级                             线程安全

Linkedlist            链表

查询        增删  

 

import java.util.*;

public class TestArrayList {

    public static void main(String[] args) {

           List list=new ArrayList();

           list.add("Liucy");

           list.add("Zhuzh");

           list.add("Luxw");

           list.add(0,"Huxz");

           list.remove(2);

           /*

           for(int i=0;i<list.size();i++){

                  Object o=list.get(i);

                  String s=(String)o;

                  System.out.println(s);

           }

           */

           print(list);

          

    }

    static void print(Collection con){

           Iterator it=con.iterator();

           while(it.hasNext()){

                  Object o=it.next();

                  System.out.println(o);

           }

    }

}

 

结果:

Huxz

Liucy

Luxw

 

 

Map

(key   --------------------value)

唯一的              可重复

 

Setmap

 

 

 

 

List

                          

 

                         Arraylist         linkedlist          vector

 

 

java怎么实现一个栈

linkedlist实现。

Class mystack{

Private Linkedlist list=new Linkedlist();

Public void push(Object o){

List.addFirst(o);

}

Public void pop(Object o){

Return List.removeFirst();

}

}

 

Set

Class Testset{

Public static void main(String args[])

{

Set s=new HashSet();

String s1=new String(“liucy”);

Sring s2=new String(“luxw”);

String s3=new String(“liucy”);

s.add(s1);

s.add(s2);

s.add(s3);

print1(s);

}

Static void print1(collection con){

Iterator it=con.iterator();

           while(it.hasNext()){

                  Object o=it.next();

                  System.out.println(o);

}

 

}

}

结果:

Luxw

Liucy

 

Treeset

当有重复的对象,新的重复的对象进不出

 

覆盖hashCode()

保证相同对象,返回相同哈希码

覆盖equals()

保证相同对象返回true

 

先比较hashcode

如果相同放在同一空间,再用Equals比较内容是否相同,相同的对象去掉

 

 

有对象的排序就得用实现comparable接口。

如果一个类中,有equals方法和compareTo方法时,两个方法必须是逻辑是一致的。

equals返回true时,则compareTo应返回0

equals返回false时,则compareTo返回非0

 

Map      里面是键值对

Key   ―――――――――――――――――value

不重复                                   可重复

无顺序

一个映射不能包含重复的键;每个键最多只能映射一个值。

当在有重复的键时,新值会覆盖旧值。

 

遍历:有值遍历,

static void printValues(Map map){

           Collection vs=map.values();

           Iterator it=vs.iterator();

           while(it.hasNext()){

                  Object o=it.next();

                  System.out.println(o);

           }

    }

 

键值对 遍历

 

static void printKeyValues(Map map){

           Set ks=map.keySet();

           Iterator it=ks.iterator();

           while(it.hasNext()){

                  Object key=it.next();

                  Object value=map.get(key);

                  System.out.println(key+"-----"+value);

           }

    }

 

 

import java.util.*;

public class TestMap {

    public static void main(String[] args){

           Map map=new TreeMap();

           map.put("Unix", "Luxw");

           map.put("CoreJava", "Liucy");

           map.put("OOAD", "Huxz");

           map.put("EJB", "George");

           map.put("CoreJava", "Huxz");

           /*

           System.out.println(map.size());

           //System.out.println(map.containsKey("EJB"));

           System.out.println(map.containsValue("Liucy"));

           System.out.println(map.get("CoreJava"));

           */

           printValues(map);

           printKeyValues(map);

    }

    static void printValues(Map map){

           Collection vs=map.values();

           Iterator it=vs.iterator();

           while(it.hasNext()){

                  Object o=it.next();

                  System.out.println(o);

           }

    }

    static void printKeyValues(Map map){

           Set ks=map.keySet();

           Iterator it=ks.iterator();

           while(it.hasNext()){

                  Object key=it.next();

                  Object value=map.get(key);

                  System.out.println(key+"-----"+value);

           }

    }

}

结果:

Huxz

George

Huxz

Luxw

CoreJava-----Huxz

EJB-----George

OOAD-----Huxz

Unix-----Luxw

 

Map的三个实现类

HashMap   1.2版的类         线程不安全    允许Null作为键或值

 

Hashtable   1.0版的类         线程安全     不允许Null作为键或值

 

Treemap    有序的

 

集合:用来管理,容纳多个对象的对象(容器)面向对象可重用性的体现,对数组作了功能封装。

 

Collection:元素是Object

基本操作:addremovesize

遍历:迭代遍历

 

List:元素有顺序(下标),可以重复

基本操作:addintObject),removeint),get

遍历:for,迭代

你可能感兴趣的:(unix,ejb)