Java 集合代码

package com.neusoft.test1;

import java.text.ParseException;
import java.text.RuleBasedCollator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;
import java.util.TreeSet;

public class Test1 {

public static void main(String[] args) throws ParseException {
	// TODO Auto-generated method stub
	method15();
}


public static void method15() {
	Person p1=new Person();
	p1.id="123";
	p1.age=19;
	p1.name="张三";
	Person p2=new Person();
	p2.id="123";
	p2.age=20;
	p2.name="李四";
	HashSet hs=new HashSet();
	hs.add(p1);
	hs.add(p2);
	
	Iterator i=	hs.iterator();
	while(i.hasNext()) {
		System.out.println(i.next());
	}
	
}

// HashSet
// 无序不可重复
// 可以为null
// 初始容量 16
// 加载因子0.75 跟扩容相关的阈值
// 桶 hashcode值相同 在一个桶中 (equals 不同)

public static void method14() {
		
		HashSet hs=new HashSet();
		hs.add("tom");
		hs.add("jerry");
		hs.add("scott");
		hs.add("king");
		hs.add(null);
		hs.add(null);
		
		Iterator i=	hs.iterator();
		while(i.hasNext()) {
			System.out.println(i.next());
		}
		
		
	}

// TreeSet ----> 红黑树
// 自然顺序对元素进行排序
// 输出结果 可能与 输入顺序不同 所以称之为无序集合
// TreeSet 集合不能为空

public static void method13() {
		TreeSet ts=new TreeSet();
		ts.add("1");
		ts.add("100");
		ts.add("10");
//		ts.add(null);
//		ts.add("13");
//		ts.add("3");
//		ts.add(11);
//		ts.add(21);
//		ts.add(12);
//		ts.add(13);
//		ts.add(3);
		Iterator i=	ts.iterator();
		while(i.hasNext()) {
			System.out.println(i.next());
		}
		
	}

// Set 集合
// 不可重复, 无序

public static void method12() {
		Set s=new HashSet();
		s.add("tom");
		s.add("scott");
		s.add("jerry");
		s.add("tom");
		
		
		Iterator i=	s.iterator();
		while(i.hasNext()) {
			System.out.println(i.next());
		}
	}

// LinkedList 模拟队列
// 方法一: add 与 remove方法可以模拟队列
// 方法二: 阿里笔试 如何用栈 模拟队列 使用双栈 实现队列

public static void method11() {
		LinkedList ll=new LinkedList();
//  push pop
		ll.push("a");
		ll.push("b");
		ll.push("c");
		LinkedList ll2=new LinkedList();
		ll2.push(ll.pop());
		ll2.push(ll.pop());
		ll2.push(ll.pop());
		
		System.out.println(ll2.pop());
		System.out.println(ll2.pop());
		System.out.println(ll2.pop());
		
	}

// method9 与method10 实现了双端队列

public static void method10() {
		LinkedList ll=new LinkedList();
		ll.addLast("aa");
		ll.addLast("bb");
		ll.addLast("ccc");
		
		System.out.println(ll.remove());
		System.out.println(ll.remove());
//		ListIterator i=ll.listIterator();   // List 下的集合为有序集合
//		while(i.hasNext()) {
//			System.out.println(i.next());
//		}
	}

// 模拟队列
// 使用add 与remove方法实现 队列功能

public static void method9() {
		LinkedList ll=new LinkedList();
		ll.addFirst("aa");
		ll.addFirst("bb");
		ll.addFirst("ccc");
		System.out.println(ll.removeLast());
		System.out.println(ll.removeLast());
		System.out.println(ll.removeLast());
//		System.out.println(ll.remove());//NoSuchElementException
//		System.out.println(ll.pop());  //java.util.NoSuchElementException
//		ListIterator i=ll.listIterator();   // List 下的集合为有序集合
//		while(i.hasNext()) {
//			System.out.println(i.next());
//		}
	}

// 使用LinkedList push 与 pop 方法 模拟栈内存

public static void method8() {
		
		LinkedList ll=new LinkedList();
		ll.push("aa");
		ll.push("bbb");
		ll.push("ccc");
		System.out.println(ll.pop());
		System.out.println(ll.pop());
		System.out.println(ll.pop());
//		System.out.println(ll.pop());  //java.util.NoSuchElementException
//		ListIterator i=ll.listIterator();   // List 下的集合为有序集合
//		while(i.hasNext()) {
//			System.out.println(i.next());
//		}
	}
public static void method7() {
	
	LinkedList ll=new LinkedList();
	ll.add("b");
	ll.add("a");
	ll.add("c");
	ll.add("d");
	ll.add("f");
	
	ListIterator i=ll.listIterator();   // List 下的集合为有序集合
	while(i.hasNext()) {
		System.out.println(i.next());
	}
}
public static void method6() throws ParseException {
		ArrayList al=new ArrayList(); 
		al.add("1");
		al.add("3");
		al.add("2");
		al.add("4");
		al.add("6");
//		 String simple = "<2 < 1< 5<6 < 3";
//		 RuleBasedCollator mySimple = new RuleBasedCollator(simple);
		al.sort(null);  //ArrayList 的sort 方法    封装了 Arrays.sort();
		ListIterator i=al.listIterator();   // List 下的集合为有序集合
		while(i.hasNext()) {
			System.out.println(i.next());
		}
	}

// ArrayList
// 数据结构:线性数组结构
// arraylist 中有一个 容量(capcity)
// 默认为10 也可以自己指定
// 可以自动扩容
// arraylist 比list 多了关于 容量的一些处理方法
// 如: 自动扩容 底层为 对 数组的拷贝 system.array.copy()

public static void method5() {
		Collection c1=new TreeSet();
		c1.add("aaaa");
		c1.add("cccc");
		c1.add("ddddd");
		c1.add("ffff");
		c1.add("bbbb");
		
		ArrayList al=new ArrayList(c1);   //保留 c1 collection 原有的遍历顺序 添加到 al ArrayList当中

		
		ListIterator i=al.listIterator();   // List 下的集合为有序集合
		while(i.hasNext()) {
			System.out.println(i.next());
		}
	}
public static void method4() {
		List l1=new ArrayList();
		l1.add("tom");
		l1.add("scott");
		l1.add("jerry");
		l1.add("tom");  //List集合中可以存储重复的元素
//		l1.add(1, "king"); //在下标为1的位置添加元素
		l1.remove(3); // 按照指定的坐标去删除对应位置的元素
		
//		System.out.println(l1.get(1));
//		System.out.println(l1.get(5));//IndexOutOfBoundsException
		ListIterator i=l1.listIterator();   // List 下的集合为有序集合
		while(i.hasNext()) {
			System.out.println(i.next());
		}
	}
	public static void method3() {
		List l1=new ArrayList();
		l1.add("tom");
		l1.add("scott");
		l1.add("jerry");
//		l1.add(123);
//		Iterator 与ListIterator 不同
//		 使用范围: Iterator collection
//				ListIterator   list集合
//		继承关系:ListIterator 是Iterator 子类
//		方法拓展:ListIterator 比Iterator多了add 方法等
//		特殊 ListIterator 可以指定遍历的开始下标(index)
		
//		Iterator i=	l1.iterator();
//		while(i.hasNext()) {
//			System.out.println(i.next());
//		}
		ListIterator i=l1.listIterator();
		while(i.hasNext()) {
			String name =(String) i.next();
			if("tom".equals(name)) {
				i.add("king");
			}
			
			System.out.println(i.previous());
			i.next();
//			System.out.println(i.previous());
//			l1.add("king");  //ConcurrentModificationException  并发修改异常 
//			System.out.println(i.next());
			
		}
		System.out.println();
		while(i.hasNext()) {
//			l1.add("king");
			System.out.println(i.next());
		}
		
		
		ArrayList l2=new ArrayList();
		
	}
public static void method2() {
	int[] a=new int[] {1,7,2,9,3,6};
	Arrays.sort(a);
	for(int n:a) {
		System.out.println(n);
	}
}

// Collection 接口
public static void method1() {
// 集合的有序与无序
// 取决于 添加元素的顺序与存储(遍历)的顺序是否一致
// 如果是一致的 则成为有序集合
// 如果是不一致 则称为无序集合

// 父类引用指向子类对象 只能调用 父类中定义的方法

	Collection c=new ArrayList();
		Collection c1=new ArrayList();
		c1.add("2");
		c1.add("2");
		c1.add("3");
		c1.add("4");
		c1.add("1");
		c.add("2");
		c.add("3");
		c.add("4");
		c.add("2");
		c.add("1");
		c.remove("2");
		c.remove("2");
//		只清除元素
		System.out.println("c1.isEmpty()"+c1.isEmpty());
		System.out.println("c1.size()"+c1.size());
		c1.clear();
		System.out.println("c1.isEmpty()"+c1.isEmpty());
		System.out.println("c1.size()"+c1.size());
		c.addAll(c1);
//		集合变成数组
		Object[] oarr=c.toArray();
		for(Object n:oarr) {
			System.out.println(n);
		}
//		System.out.println();
//		 想要遍历集合 要使用 迭代器 (遍历器)   迭代器设计模式 :不用知道集合的数据类型 依旧可以遍历
//		Iterator  i=c.iterator();
//		while(i.hasNext()) {
//			System.out.println(i.next());
//		}
//		for(Object n:c) {
//			System.out.println(n);
//		}
		
		
	}

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值