List

来源:互联网 发布:suse和ubuntu 编辑:程序博客网 时间:2024/05/21 10:02

1. 

import java.util.*;/*集合的体系:----------| Collection 单列集合 的根接口--------------|  List  如果是实现了List接口的集合类,该集合类具备的特点:有序,可重复。--------------|  Set   如果是实现了Set接口的集合类,该集合类具备的特点: 无序,不可重复。有序: 集合的有序不是指自然顺序,而是指添加进去的顺序与元素出来的顺序是一致的。List接口中特有方法:添加add(int index, E element) addAll(int index, Collection<? extends E> c) 获取:get(int index) indexOf(Object o) lastIndexOf(Object o) subList(int fromIndex, int toIndex) 修改:set(int index, E element) 迭代listIterator() */public class List1 {public static void main(String[] args) {List list1 = new ArrayList();List list2 = new ArrayList();list1.add(123);list1.add(123);list1.add(123);list1.add("hello");list1.add(1,"1这里");list2.add("我是2里面的元素");list2.add("我也是2里面的元素");System.out.println(list1);list1.addAll(2,list2);System.out.println(list1);System.out.println(list1.get(3));System.out.println(list1.indexOf("我也是2里面的元素"));System.out.println(list1.lastIndexOf(123));System.out.println(list1.subList(4,6));//4~5list1.set(3,"我不是2里面的元素");System.out.println(list1);/*迭代ListIterator特有的方法:添加:hasPrevious()  判断是否存在上一个元素。previous()    当前指针先向上移动一个单位,然后再取出当前指针指向的元素。next();  先取出当前指针指向的元素,然后指针向下移动一个单位。*/ListIterator it = list1.listIterator();//System.out.println("有上一个元素吗: "+ it.hasPrevious());//System.out.println("当前指向的元素"+it.next());//System.out.println("获取上一个元素"+it.previous());while(it.hasNext()){System.out.println("当前指向的元素: "+it.next());}while(it.hasPrevious()){System.out.println("有上一个元素吗: "+ it.previous());}System.out.println("最简单的遍历方法");for(int i=0;i<list1.size();i++){System.out.print(list1.get(i)+",");}List list3 = new ArrayList();list3.add(1);list3.add(2);list3.add(3);ListIterator it3 = list3.listIterator();while(it3.hasNext()){System.out.print(it3.next()+",");it3.add("Aa");}System.out.println("\r"+list3);//list的add方法是把元素添加到list 的末尾//ListIterator的add方法是把元素添加到当前指针的位置,再把指针移向下一个位置//在迭代器遍历元素的过程中,不允许使用集合对象改变集合中的元素,如果需要添加或者删除只能使用迭代器的方法进行操作}}

运行结果:

[123, 1这里, 123, 123, hello][123, 1这里, 我是2里面的元素, 我也是2里面的元素, 123, 123, hello]我也是2里面的元素35[123, 123][123, 1这里, 我是2里面的元素, 我不是2里面的元素, 123, 123, hello]当前指向的元素: 123当前指向的元素: 1这里当前指向的元素: 我是2里面的元素当前指向的元素: 我不是2里面的元素当前指向的元素: 123当前指向的元素: 123当前指向的元素: hello有上一个元素吗: hello有上一个元素吗: 123有上一个元素吗: 123有上一个元素吗: 我不是2里面的元素有上一个元素吗: 我是2里面的元素有上一个元素吗: 1这里有上一个元素吗: 123最简单的遍历方法123,1这里,我是2里面的元素,我不是2里面的元素,123,123,hello,1,2,3,[1, Aa, 2, Aa, 3, Aa]

 

2. 去除相同的元素 用迭代器

import java.util.*;class Book{int id;String name;public Book(int id, String name) {this.id = id;this.name = name;}public String toString(){return "\rid: "+id+" 名字:"+name;}public boolean equals(Object obj){Book book = (Book)obj;return this.id==book.id;}}public class ListPractice {public static void main(String[] args) {ArrayList list = new ArrayList();list.add(new Book(1, "上册"));list.add(new Book(2, "中册"));list.add(new Book(3, "下册"));list.add(new Book(2, "待删除的"));//ListIterator it = list.listIterator();//while(it.hasNext())//{//System.out.println(it.next());//}ArrayList list2 = clearRepeat(list);System.out.println("list2: "+list2);}public static ArrayList clearRepeat(ArrayList list){ArrayList list2 = new ArrayList();Iterator it = list.iterator();while(it.hasNext()){Book book = (Book)it.next();if(!list2.contains(book)){list2.add(book);}}return list2;}}

运行结果:

list2: [
id: 1 名字:上册, 
id: 2 名字:中册, 
id: 3 名字:下册]

0 0