黑马程序员技术交流社区
标题: 今天List的总结(上) [打印本页]
作者: 玉遥 时间: 2014-7-8 22:10
标题: 今天List的总结(上)
1、数据结构
1.1栈 :先进后出,进去abc出来c先出
1.2队列:先进先出,a先进然后bc,出来a先出
1.3数组:查询快,增删慢
1.4链表:查询慢,增删快
2、List的三个儿子
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 |