LinkedList集合
发布时间:2020-12-15 08:22:51 所属栏目:Java 来源:网络整理
导读:? LinkedList集合 的存储结构为链表,添加、删除快,查找慢。 LinkedList和ArrayList的父类都是List接口,因此他们有很多相同的方法。 创建Person类: public class Person { private String name; private int age; public String getName() { return name;
?LinkedList集合的存储结构为链表,添加、删除快,查找慢。 LinkedList和ArrayList的父类都是List接口,因此他们有很多相同的方法。 创建Person类: public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if (age >= 0 || age <= 200) this.age = age; } public Person(String name,int age) { this.name = name; this.age = age; } } 写遍历集合的方法: import java.util.LinkedList; public class Way { public void addPerson(LinkedList<Person> array) { Person p1 = new Person("张三",12); Person p2 = new Person("李明",14); Person p3 = new Person("李华",23); Person p4 = new Person("吴佩佩",2); Person p5 = new Person("王涛",15); array.add(p1);//类中的add方法 array.add(p2); array.add(p3); array.add(p4); array.add(p5); } // 运用一般的get()方法遍历集合 public void printPerson(LinkedList<Person> link) { for (int i = 0; i < link.size(); i++) {//类中的size方法 Person p = link.get(i);//get方法 System.out.println(p.getName() + " " + p.getAge()); } } } 测试类: import java.util.LinkedList; public class LinkedListDemo { public static void main(String[] args) { LinkedList<Person> link=new LinkedList<Person>(); Way way=new Way(); way.addPerson(link); way.printPerson(link); } } 运行结果: 由于LinkedList具有查询慢,增删快的特性,为了充分利用它的特点,LinkedList集合还有很多特有的方法。 addFirst方法: package pers.zhb.LinkedList; import java.util.Iterator; import java.util.LinkedList; public class Way { public void LinkedListPrint(LinkedList<Integer> link) { System.out.println("迭代器方法遍历集合:"); Iterator<Integer> linkIt = link.iterator();// 获取集合的实现类对象,病调用集合的iterator() while (linkIt.hasNext()) { Integer in = linkIt.next(); System.out.print(in); } } public void linkedListadd(LinkedList<Integer> link) { Integer it1 = new Integer(1); Integer it2 = new Integer(2); Integer it3 = new Integer(3); Integer it4 = new Integer(4); link.addFirst(it1); link.addFirst(it2); link.addFirst(it3); link.addFirst(it4); } } package pers.zhb.LinkedList; import java.util.LinkedList; public class LinkedListDemo { public static void main(String[] args) { LinkedList<Integer> link = new LinkedList<Integer>(); Way way = new Way(); way.linkedListadd(link); way.LinkedListPrint(link); } } 由结果可知,LinkedList集合的addFirst集合符合“后进先出”的规则。 ?removeFirst()与getFirst(): package pers.zhb.LinkedList; import java.util.LinkedList; public class LinkedListDemo { public static void main(String[] args) { LinkedList<Integer> link = new LinkedList<Integer>(); Way way = new Way(); way.linkedListadd(link); link.removeFirst();// 方法removeFirst(); System.out.println("集合中的第一个元素为:" + link.getFirst());// 方法getFirst(); way.LinkedListPrint(link); } } pop()、push()、isEmpty()方法的使用: package pers.zhb.LinkedList; import java.util.LinkedList; public class LinkedListDemo { public static void main(String[] args) { LinkedList<Integer> link = new LinkedList<Integer>(); Way way = new Way(); way.linkedListadd(link); System.out.println("栈顶插入元素前,栈中的元素为:"); way.LinkedListPrint(link); link.push(5); System.out.println(); System.out.println("弹出栈顶的元素:" + link.pop()); System.out.println("栈顶弹出元素后,栈中的元素为:"); way.LinkedListPrint(link); System.out.println(); System.out.println("是否为空:" + link.isEmpty()); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |