java基础_12

1、什么是集合?  在编程中,集合是若干不同的对象放在一起构成的组合。java中关于集合的知识其实就是用来管理这些放在一起的对象的。这里讲的管理包括:存储、取出、检索、排序、添加、删除等等。

2、set
2.1 set系列容器中不允许存储重复元素。如果硬要添加一个已经存在的元素,会被直接忽略掉。
2.2 set接口主要的实现类有三个:HashSet  TreeSet  LinkedHashSet,其中最重要的是HashSet
2.3 set容器不关心其中的元素的顺序,只关心我的容器中有没有这个元素。
2.4 set容器中的元素可以使用迭代器来遍历,set的.iterator()方法可以获取一个用来遍历该set的迭代器。

a.sort();
Arrays.sort(a);

3、List
3.1 List接口下面的类有三个:ArrayList LinkedList Vector
3.2 ArrayList内部用数组实现,克服了数组的三个缺点(数组内元素种类必须相同,数组大小在定义时必须指定,数组大小一旦确定就不能再更改)。ArrayList在随机访问和遍历时快,在插入和删除时慢。ArrayList在插入时只能从列表后面插入元素。
3.3 LinkedList内部用链表实现,功能和方法列表和ArrayList基本一样。LinkedList在插入和删除元素时快,在随机访问和遍历时慢。在插入元素时可以在头部或尾部任意插入。
3.4 Vector和ArrayList几乎一样,但是Vector是线程安全的,而ArrayList不是线程安全的。

4、Map
4.1 Map(映射)是这样一种集合,集合中存储的内容都是一些 key-value对。譬如用户名和密码这样的成对出现的东东。

username     aston
passwd        1223456

4.2 Map接口的实现类有三个:HashMap  TreeMap  Properties

5、泛型
5.1、自动装箱与拆箱
int类型这种java语言本身自带的基础数据类型,用它来定义变量 int a;因为int不是类,所以a不是对象,这违背了面向对象的编程思维中“一切皆是对象”的理念。
解决方案就是发明了一个Integer类,然后以后不要用int了,全用Integer类来替代就行了。

5.2、对象装入容器中时,容器本身是不附带标志对象类型的功能的,因此对象从容器中拿出来的时候已经丢失了原来的类型(或者说拿出来后都是Object类型),所以只能程序员自己来强制类型转换而得到取出对象的类型(程序员通过看代码上下文,从对象装箱之前的类型推测得到取出后的类型。)这样做虽然可以,但是增加了程序员的负担,过于依赖于程序员的水平。
解决方案就是泛型,在容器类型后附带<T>,就可以给容器增加标识容器内对象类型的技能,然后这个容器只能装这个指定类型的对象,将来对象取出时也一定就是这个T类型,再也不用强制类型转换了。
int a = 4;
Integer a = new Integer(4);
new Integer(1);

Hashmap——————————————————————————————————————

import java.util.HashMap;
import java.util.Iterator;


public class Entry {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //PropertiesTest t = new PropertiesTest();
        //t.test();
        PropertiesTest.test();
        
        /*
        Teacher t1 = new Teacher("zhangsan", 23, 170);
        Teacher t2 = new Teacher("lsi", 24, 150);
        Teacher t3 = new Teacher("wangwu", 63, 177);
        
        HashMap<String,Teacher> m = new HashMap<String,Teacher>();
        m.put("张三", t1);
        m.put("李四", t2);
        m.put("王五", t3);
        
        Iterator it = m.keySet().iterator();
        while (it.hasNext())
        {
            Teacher t = m.get(it.next());
            System.out.println(t.age);
        }
        */
        
        /*
        Teacher[] a = new Teacher[3];
        a[0] = t1;
        a[1] = t2;
        a[2] = t3;
        
        System.out.println(t3.name);
        */
        
    }

}
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;


public class PropertiesTest {
    
    static void test()
    {
        Properties p = new Properties();
        try
        {
            p.load(PropertiesTest.class.getResourceAsStream("test.properties"));
            //p.load(new FileInputStream("/test.properties"));
            
            System.out.println("username = " + p.getProperty("user"));
            System.out.println("password = " + p.getProperty("passwd"));
            
            p.setProperty("language", "zh-CN");
            
            //OutputStream os = new FileOutputStream("my.properties");
            //p.store(os, "this is comment");
            
            OutputStream os = new FileOutputStream("my.xml");
            p.storeToXML(os, "test for write to xml file");
            
            
        }catch (IOException e)
        {
            e.printStackTrace();
        }
    }
    
}
public class Teacher {
    String name;
    int age;
    int length;
    
    
    public Teacher(){}
    
    public Teacher(String name, int age, int length)
    {
        this.name = name;
        this.age = age;
        this.length = length;
    }
}

ArryList---------------------------------------------------------------------------------------------

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class Entry {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        
        List l = new ArrayList();
        l.add(23);        // 0
        l.add(3);
        l.add(23);
        l.add(243);
        l.set(10, 333333);

        System.out.println(l.size());
        System.out.println(l.contains(2223));
        System.out.println(l.indexOf(23333));
        System.out.println(l.lastIndexOf(23));
        
        System.out.println("--------------------------");
        
        Iterator it = l.iterator();
        while (it.hasNext())
        {
            System.out.println(it.next());
        }
        
        
    }

}

Properties------------------------------------------------------------------------------------------------------

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;


public class Entry {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        
        Properties p = new Properties();
        try
        {
            p.loadFromXML(new FileInputStream("test.xml"));
            System.out.println("username = " + p.getProperty("username"));
            System.out.println("password = " + p.getProperty("passwd"));
            
        }catch (IOException e)
        {
            e.printStackTrace();
        }
        
        
        
        
        /*
        Properties p = new Properties();
        String name, pw;
        
        try
        {
            p.load(Entry.class.getResourceAsStream("/aston1.properties"));
            name = p.getProperty("username");
            pw = p.getProperty("passwd");
            System.out.println("用户名是:" + name + ", 密码是:" + pw);
            p.setProperty("language", "zh-CN");
            String s = p.getProperty("language");
            System.out.println(s);
            
            //OutputStream os = new FileOutputStream("aston2.properties");    
            //p.store(os, "xxxxx");
            OutputStream os = new FileOutputStream("test1.xml");
            p.storeToXML(os, "test for wirte in xml format");
        }catch (IOException ex)
        {
            ex.printStackTrace();
        }
        */
        
    }

}
public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String s1 = "wo shi";
        s1 += "zhong guo ren";
        System.out.println(s1);
        
        /*
        String fileName = "abc.Java";
        
        boolean b = fileName.regionMatches(fileName.length()-5, ".java", 0, 5);
        System.out.println(b);
        */
        /*
        String s1 = "AsTon";
        System.out.println(s1.equals("aston"));
        System.out.println(s1.equalsIgnoreCase("aston"));
        
        String s2 = s1.toLowerCase();
        System.out.println(s2.equals("aston".toLowerCase()));
        */
    }

}

Set-------------------------------------------------------------------------------------------------

import java.util.HashSet;
import java.util.Iterator;


public class Entry {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        /*
        int a[] = new int[]{1, 2, 3, 4, 5};
        
        for (int x : a)
        {
            System.out.println(x);
        }
        */
        
        
        HashSet s = new HashSet();
        
        s.add("abc");
        s.add("acd");
        s.add("45");
        s.add(false);
        s.add("abc");
        //s.clear();
        System.out.println(s.size());
        System.out.println(s.isEmpty());
        System.out.println(s.contains("4"));
        
        System.out.println("-----我是分割线------");
        // 使用迭代器来迭代访问set
        Iterator it = s.iterator();
        while (it.hasNext())
        {
            System.out.println(it.next());
        }
        //it.next();        // next方法用来挨个取出set中的元素
        //it.hasNext()        // 如果迭代器发现set中还有元素,则返回true
        System.out.println("-----我是分割线------");
        
        for (Object ob : s)
        {
            System.out.println(ob);
        }
    }

}


你可能感兴趣的:(java基础_12)