4.30集合

集合

import java.util.ArrayList;
import java.util.Collection;

/**
 * 集合的引出:容器有:数组(存储长度是固定的),字符串缓冲区(只能存储字符串),
 * 我们需要一个长度不固定的容器来存储我们的对象,Java为我们提供了一个容器:集合Collection
 * Collection:子接口有两个,两个子接口分别对应多个子实现类,多个集合数据结构不同,但是他们有共性内容,将共性内容
 * 常用功能:
 *  	添加功能:
 *			boolean add(Object e)   只要添加元素就返回true
 *		删除功能:
 *			void clear() :删除集合中所有元素(暴力删除)
 *			boolean remove(Object o):删除集合中的指定元素
 *		判断功能:
 *			boolean contains(Object o):集合中是否包含指定的元素
 *			boolean containsAll(Collection c) 一个集合是否包含另一个集合
 *		获取功能:
 *			int size() :获取集合中的元素数
 *		交集功能:
 *			boolean retainAll(Collection c)   A集合对B集合取交集元素  
 *		删除功能:	
 *			boolean removeAll(Collection c)   删除一个集合中所有元素
 *		转换功能:
 *		Object[] toArray() :将集合转换成数组
 * */
public class Text1 {
	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add("hello");
		c.add("world");
		c.add("Java");
		c.add("apple");
		System.out.println(c);
		//数组遍历方法
		Object[] o = c.toArray();
		for(int i = 0;i<o.length;i++) {
			System.out.println(o[i]);
		}
		Collection cc = new ArrayList();
		cc.add("hello");
		cc.add("Java");
		//删除Java,只要删除就返回true
		boolean b= c.remove("Java");
		System.out.println(b);
		//判断是否包含hello
		System.out.println(c.contains("hello"));
		//判断包含(一个集合包含另一个集合的所有才算是包含,返回true)
		System.out.println(c.containsAll(cc));
		//删除(删除一个元素就返回true)
		System.out.println(c.removeAll(cc));
		//两个集合的交集,将交集放在c中
		System.out.println(c.retainAll(cc));
	}
}

迭代器

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * 迭代器Iterator
 * Iterator iterator() :集合的迭代器方法(获取集合的迭代器)
 * Iterator :接口中有以下的方法:
 *		boolean hasNext() :如果有元素可以迭代,那么返回true,否则返回false
 *		Object next()返回迭代的下一个元素。 
 * */
public class Text2 {
	//迭代器方式遍历集合
	public static void main(String[] args) {
		//创建对象
		Person p1 = new Person("张三",12,110);
		Person p2 = new	Person("李四",13,111);
		Person p3 = new Person("赵五",14,112);
		//创建集合
		Collection c = new ArrayList();
		//在集合中添加元素
		c.add(p1);
		c.add(p2);
		c.add(p3);
		//通过集合获取迭代器
		Iterator it = c.iterator();
		while(it.hasNext()) {//判断是否有下一个元素可以迭代
			Person s = (Person)(it.next());//返回下一个元素,强制类型转换为Person
			System.out.println(s);
		}
	}
}

List集合

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/*
 *List集合:有序的 (存储和取出一致),可以允许重复元素
 *Collection有两个子接口:List(有序)		Set(无序性(不能保证迭代的顺序,基于hashMap),并且元素不能重复)
 * */
public class Text3 {
	public static void main(String[] args) {
		List l = new ArrayList();
		l.add("hello");
		l.add("world");
		l.add("Jave");
		l.add("hello");
		//使用迭代器遍历
		Iterator it = l.iterator();
		while(it.hasNext()) {//判断是否有下一个可以迭代的元素
			String s = (String)(it.next());//返回下一个元素,并转换为String类型
			System.out.println(s);
		}
	}
}
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/**
 * List集合特有功能
 *	添加功能
 *		void add(int index,Object element):在指定位置处添加指定元素
 *	获取功能
 *		Object get(int index)返回列表中指定位置的元素。
 *	删除功能:
 *		Object remove(int index):删除指定位置处的元素
 * 	修改功能
 *		Object set(int index, Object element):用指定element元素替换掉指定位置处的元素
 *	List集合有自己专属的迭代器:ListIterator listIterator()列表迭代器
 * */
public class Text4 {
	public static void main(String[] args) {
		List l = new ArrayList();
		l.add("abc1");
		l.add("abc2");
		l.add("abc3");
		l.add(1,"abc");//按索引添加功能
		l.remove(3);//按索引删除功能
		l.set(0, "def");//按索引修改功能
		ListIterator it = l.listIterator();
		while(it.hasNext()) {
			String s = (String)(it.next());
			System.out.println(s);
		}
		//使用size来遍历list集合
		for(int i = 0;i<l.size();i++) {
			System.out.println(l.get(i));
		}
	}
}

list专属迭代器

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
//ListIterator有逆向遍历功能,但需要在正向遍历前提下
//           boolean hasPrevious():判断是否有上一个可以迭代 元素(逆向遍历)
//           Object previous():返回上一个元素
//如果集合中有Java,就添加||
public class Text5 {
	public static void main(String[] args) {
		List l = new ArrayList();
		l.add("hello");
		l.add("Java");
		l.add("hello");
		l.add("Java");
		l.add("hello");
		//方式1利用迭代器
		ListIterator it = l.listIterator();
		while(it.hasNext()) {
			String s = (String)(it.next());
			if("Java".equals(s)) {
				it.add("||");//往迭代器中添加,在该元素之后添加
			}
		}
		System.out.println(l);
		//方式二size()get()方法
		for(int i= 0;i<l.size();i++) {
			String str = (String)l.get(i);
			if(str.equals("Java")) {
				l.add("||");//在列表之后添加
			}
		}
		System.out.println(l);
	}
}



猜你喜欢

转载自blog.csdn.net/ws1995_java/article/details/80199250
今日推荐