A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 玉遥 中级黑马   /  2014-7-8 22:10  /  1135 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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());
        }
    }
}

1 个回复

正序浏览
总结的不错啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马