Java集合和泛型的学习

Java集合分为两大类:Collection和Map
Cloocetion:List接口和Set接口
1.List接口:有序,重复
ArrayList:List 接口的大小可变数组的实现。查找性能较高。
LinkedList: List 接口的链接列表实现。增添删除性能较高。
2.Set接口:无序的,不可重复
HashSet:此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。
Map接口:

    /**
     * ArrayList添加和删除操作
     */
private static void m1() {
    ArrayList list = new ArrayList();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("123");
    System.out.println(list);
    list.remove(0);//通过索引删除第一个元素
    list.remove("123");//通过内容删除第四个元素
    System.out.println(list);
}
    /**
     * 修改指定位置的元素
     */
private static void m2() {
    ArrayList list = new ArrayList();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("123");
    System.out.println(list);
    list.set(2,"r");
    System.out.println(list);
    }
    /**
     * 查找集合中的元素
     */
    private static void m3() {
        ArrayList list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("123");
        System.out.println(list);
        String v = (String) list.get(0);
        System.out.println(v);
    }
    /**
     * 遍历数组中的所有元素 
     * size()           返回此列表中的元素数。
     */
    private static void m4() {
        ArrayList list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("123");
        System.out.println(list.size());
//      for(int i=0;i<list.size();i++){
//          String v  = (String)list.get(i);
//          System.out.println(v);
//      }
        //迭代器遍历集合
        Iterator ite = list.iterator();
        while(ite.hasNext())//判断是否有下个元素来迭代
        {
            System.out.println(ite.next());
        }
    }
    /**
     * 弹栈
     */
    private static void m1() {
        LinkedList list = new LinkedList();
        list.push("a");
        list.push("b");
        list.push("c");
        list.pop();
        System.out.println(list);
    }
    /**
     * HashSet基本操作
     */
    private static void m1() {
        HashSet set = new HashSet();
        set.add("qiqi");
        set.add("Joki");
        set.add("haha");
        System.out.println(set);
        //判断一个元素是否存在集合中
        boolean b = set.contains("Joki");
        System.out.println(b);
    }
    /**
     * HashSet的遍历
     */
    private static void m2() {
        //使用迭代器
        HashSet set = new HashSet();
        set.add("qiqi");
        set.add("Joki");
        set.add("haha");
        Iterator ite= set.iterator();
        while(ite.hasNext()){
            System.out.println(ite.next());
        }

    }
    /*
         * Map的基本操作
         */
        Map map = new HashMap();
        map.put("Joki", 111);
        map.put("hahha", 250);
        map.put("chouzhu",456);
        map.put("dashabi", 6666);
        System.out.println(map);
        System.out.println(map.put("chouzhu", 38));
        System.out.println(map.containsValue(456));
        System.out.println(map.containsKey("Joki"));
        for( Object key : map.keySet()){
            System.out.println(key + "-->" + map.get(key));
        }
        map.remove("dashabi");
        System.out.println(map);
        /**
         * 使用迭代器遍历
         */
        Set entry = map.entrySet();
        Iterator ite = entry.iterator();
        while(ite.hasNext()){
            Map.Entry entry1 = (Entry) ite.next();
            String key = (String) entry1.getKey();
            if("Joki".equals(key)){
                entry1.setValue("999");
            }
        }
        System.out.println(map);

泛型类

public class Point<t1,t2> //t1,t2称为类型参数
{
    private t1 x;
    private t2 y;
    public void setLacation(t1 x , t2 y){
        this.x = x ;
        this.y = y;
    }
    public void getLacation(){
        System.out.println("x=" + x +", y=" + y );
    }
}


public class Launcher {
    public static void main(String[] args){
        Point<String,String> p = new Point<>();//泛型声明要在创建对象的时候,改变类型时要重新创建一个对象
        p.setLacation("东经10°","北纬20°");
        p.getLacation();

        Point<Integer,Integer> p1 = new Point<>();
        p1.setLacation(5,6);
        p1.getLacation();
    }
}

泛型接口

public interface MyInterface<T> {

}

泛型方法

public class Point //t1,t2称为类型参数
{
    public <t1,t2>void setLacation(t1 x , t2 y)//<>位于返回类型之前,如果是静态方法位于static之后
    {
        System.out.println("x=" + x +",y=" + y);
    }
}

public class Launcher {
    public static void main(String[] args){
        Point p = new Point();
        p.setLacation("东京10°","北纬20°");
        p.setLacation(10,20);
    }
}

相关资料:http://www.javaweb.cc/help/JavaAPI1.6/index.html?overview-summary.html

发布了22 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Joki233/article/details/53455033