黑马程序员技术交流社区

标题: 今天List的总结(上) [打印本页]

作者: 玉遥    时间: 2014-7-8 22:10
标题: 今天List的总结(上)
1、数据结构
      1.1 :先进后出,进去abc出来c先出
      1.2队列:先进先出,a先进然后bc,出来a先出
      1.3数组:查询快,增删慢
      1.4链表:查询慢,增删快
2List的三个儿子
      2.1 ArrayList
         ●底层数据结构是数组,特点是增删慢,查询快,线程不安全,效率高。
      ●在不需要线程安全时,查询多的情况下使用
●案例:
        A:ArrayList存储字符串并遍历。
           方式1
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest1 {
    public static void main(String[] args) {
        ArrayList<String> al=new ArrayList<String>();
        al.add("道");
        al.add("法");
        al.add("自");
        al.add("然");
        Iterator<String> it=al.iterator();
        while (it.hasNext()) {
            String s=it.next();
            System.out.println(s);
        }
        
    }
}
方式2:使用增强for循环
import java.util.ArrayList;
public class ArrayListTest1 {
    public static void main(String[] args) {
        ArrayList<String> al=new ArrayList<String>();
        al.add("道");
        al.add("法");
        al.add("自");
        al.add("然");
        for (String s : al) {
            System.out.println(s);
        }
    }
}
         B:ArrayList存储自定义对象并遍历。
           方式1:
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest1 {
    public static void main(String[] args) {
        ArrayList<Person> al = new ArrayList<Person>();
        Person p1 = new Person("人", 15);
        Person p2 = new Person("法", 17);
        Person p3 = new Person("地", 19);
        al.add(p1);
        al.add(p2);
        al.add(p3);
        Iterator<Person> it = al.iterator();
        while (it.hasNext()) {
            Person p = it.next();
            System.out.println(p.getName() + "---" + p.getAge());
        }
    }
}
方式2:使用增强for循环
import java.util.ArrayList;
public class ArrayListTest1 {
    public static void main(String[] args) {
        ArrayList<Person> al = new ArrayList<Person>();
        Person p1 = new Person("人", 15);
        Person p2 = new Person("法", 17);
        Person p3 = new Person("地", 19);
        al.add(p1);
        al.add(p2);
        al.add(p3);
        for (Person p : al) {
            System.out.println(p.getName() + "---" + p.getAge());
        }
    }
}
         C:去除重复值
           a:字符串
           方式1:(方式2在自定义对象)
import java.util.ArrayList;
public class GetOnly {
    public static void main(String[] args) {
        ArrayList<String> al=new ArrayList<String>();
        al.add("道");
        al.add("法");
        al.add("自");
        al.add("然");
        al.add("法");
        al.add("法");
        al.add("法");
        al.add("自");
        ArrayList<String> al1=new ArrayList<String>();
        for (int i = 0; i < al.size(); i++) {
            while (!al1.contains(al.get(i))) {
                al1.add(al.get(i));
            }
        }
        for (String s : al1) {
            System.out.println(s);
        }
        
    }
}
b:自定义对象
方式2:
import java.util.ArrayList;
public class GetOnly1 {
    public static void main(String[] args) {
        ArrayList<Person> al = new ArrayList<Person>();
        Person p1 = new Person("人", 15);
        Person p2 = new Person("法", 16);
        Person p3 = new Person("道", 17);
        Person p4 = new Person("法", 16);
        Person p5 = new Person("法", 16);
        Person p6 = new Person("道", 18);
        al.add(p1);
        al.add(p2);
        al.add(p3);
        al.add(p4);
        al.add(p5);
        al.add(p6);
        // 选择排序方法
        for (int i = 0; i < al.size() - 1; i++) {
            for (int j = i + 1; j < al.size(); j++) {
                Person p = al.get(i);
                Person p11 = al.get(j);
                if (p.getName().equals(p11.getName())
                        && p.getAge() == p11.getAge()) {
                    al.remove(j);
                    // 因为每次删除一个元素,索引会往前移位,
                    // 所以j--,让移到前一位的元素得以跟其比较
                    j--;
                }
            }
        }
        for (Person p : al) {
            System.out.println(p.getName() + "---" + p.getAge());
        }
    }
}


作者: xp8812    时间: 2014-7-8 22:18
总结的不错啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2