Java集合简介

一、集合

Connection(集合)是最基本的集合接口,主要有三种类型:Set(集)、List(列表)、Map(映射)。在这里根据自己的理解主要介绍ArrayList、LinkedList、TreeSet三种。

二、ArrayList

ArrayList实际上就是动态数组,是Array的复杂版本,和vector大致相同,其允许包括null值,区别是此实现是不同步的。

构造方法如下:

ArrayList()
          构造一个初始容量为 10 的空列表。
ArrayList(Collection<? extendsE> c)
          构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
ArrayList(int initialCapacity)
          构造一个具有指定初始容量的空列表。

实力代码如下:

public class DemoArrayList {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList<String> al = new ArrayList<String>();
		al.add("adfr");
		al.add("add");
		al.add("as");
		al.add("s");
		System.out.println(al.size());
//		for(int i=0;i<al.size();i++){
//			System.out.println(al.get(i));
//		}
	}

}

三、LinkedList

List 接口的链接列表实现,此实现不同步。实现所有可选的列表操作,并且允许所有元素(包括null)。除了实现List 接口外,LinkedList 类还为在列表的开头及结尾get、remove和insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或者双端队列。

构造方法如下:

LinkedList()
          构造一个空列表。
LinkedList(Collection<? extendsE> c)
          构造一个包含指定 collection 中的元素的列表,这些元素按其 collection 的迭代器返回的顺序排列。

示例代码如下:

public class DemoLinkedList {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		LinkedList<String>ll = new LinkedList<String>();
		ll.add("a");
		ll.add("ab");
		ll.add("abc");
		ll.add("abcd");
		ll.addLast("abcde");
		
		ListIterator<String >li = ll.listIterator();
		while(li.hasNext()){
			System.out.println(li.next());
			System.out.println(li.nextIndex());
		}
//		while(li.hasPrevious()){
//			System.out.println(li.previous());
//		}
//		System.out.println(ll.getLast());
	}

}

四、TreeSet

此实现不是同步的,基于 TreeMap的NavigableSet  实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。

构造方法:

TreeSet()
          构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。
TreeSet(Collection<? extendsE> c)
          构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行排序。
TreeSet(Comparator<? superE> comparator)
          构造一个新的空 TreeSet,它根据指定比较器进行排序。
TreeSet(SortedSet<E> s)
          构造一个与指定有序 set 具有相同映射关系和相同排序的新 TreeSet。


示例代码如下:

public class DemotreeSet {


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TreeSet<String> ts =new TreeSet<String>();
		
		ts.add(new Student().setNaSe("Wangli", "W"));
		ts.add(new Student().setNaSe("ZhangShan", "M"));
		ts.add(new Student().setNaSe("LiLi", "W"));
		ts.add(new Student().setNaSe("XuXian", "M"));
		
		Iterator<String> it = ts.iterator();
		while(it.hasNext()){
			String st =it.next();
			System.out.println(st+".........."+st.length());
		}
		
	}

}
class Student{
	@SuppressWarnings("unused")
	private String name;
	@SuppressWarnings("unused")
	private String sex;

//	Student(String name, String sex) {
//		// TODO Auto-generated constructor stub
//		this.name = name;
//		this.sex = sex;
//	}
	public String setNaSe(String name,String sex){
		this.sex = sex;
		this.name = name;
		return name+sex;
				
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值