容器 java集合框架

java集合框架提供了一套性能优良、使用方便的接口和类,他们位于java.util包中



Collection接口存储一组不唯一,无序的对象

List接口存储一组不唯一,有序(插入顺序)的对象

Set接口存储一组唯一,无序的对象

Map接口存储一组键值对象,提供key到value的映射

ArrayList优点遍历元素和随机访问元素的效率比较高。缺点:添加和删除需要大量移动元素效率低

例:

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

public class CollectionDemo {

	public static void main(String[] args) {
		ArrayList<String> a = new ArrayList<String>();
		a.add("张三");
		a.add("李四");
		a.add("王五");
		a.add("你好");
		// 长度
		int b = a.size();
		System.out.println(b);
		// 输入要查找的 元素返回下标值
		int c = a.indexOf("王五");
		System.out.println(c);
		// 判断是否为空
		boolean flag = a.isEmpty();
		System.out.println(flag);
		// 修改 前面输入下标
		a.set(1, "赵四");
		// 读取
		System.out.println(a.get(1));
		// 遍历循环用来 读取ArrayList里面的内容
		for (String k : a) {
			System.out.println(k);
		}
		// for循环的办法读取
		for (int i = 0; i < a.size(); i++) {
			System.out.print(a.get(i) + "\t");
		}

		// 迭代器的读取 了解就行
		Iterator<String> it = a.iterator();
		// 当他有下一个是进入下一步
		while (it.hasNext()) {
			// 输出值
			System.out.print(it.next());
		}
	}

}
LinkedList:优点插入删除元素时效率较高,缺点:遍历和随机访问元素效率低。

例:

import java.util.LinkedList;

public class LinkedListDemo {
	public static void main(String[] args) {
		LinkedList<String> li = new LinkedList<String>();
		// 添加
		li.add("张三");
		// 在第一个前面添加
		li.addFirst("李四");
		// 在第一个前面添加
		li.offerFirst("王五");
		// 在最后一个后面添加
		li.addLast("赵四");
		/*
		 * //迭代的方法 判断是否为空 不为空就 进去 while(!li.isEmpty()){ //删除查找 删一个找一个
		 * System.out.println(li.removeFirst());
		 * //System.out.println(li.removeLast()); //新的方法独有方法 pool
		 * //System.out.println(li.pollFirst()); }
		 */
		// for 循环 查找
		/*
		 * for(int i = 0;i<li.size();i++){ //get方法 获取输出
		 * System.out.println(li.get(i)); }
		 */
		/*
		 * //foreach 循环遍历 for(String k:li){ System.out.println(k); }
		 */
		// 查找第一个
		String a1 = li.getFirst();
		// 自己独有的方法 peekFirst 用来获取第一个
		String a2 = li.peekFirst();
		System.out.println(a1);
		System.out.println(a2);
	}
}

HashSet:优点添加速度快,查询快,删除快。缺点:无序。

HashSet的唯一性基于 重写Hashcode和equals放的基础上

例:

/**
 * HashSet 集合
 * 添加 删除最快
 * Set没有get方法
 * 其中的各个方法都是一样的 因为他们都是同一个祖父类的
 *  其中的各个用途都是差不多一样的
 * 
 */
import java.util.HashSet;
import java.util.Iterator;

public class HashSetDemo  {
	public static void main(String[] args) {
		//创建方法
		HashSet<String>  a = new HashSet<String>();
		a.add("张三");
		a.add("李四");
		int s = a.size();
		System.out.println(s);
		//迭代器的  输出方式  因为 Set没有 get方法
		Iterator<String> b = a.iterator();
		while(b.hasNext()){
			System.out.println(b.next());
		}
		
		//也可以使用 for each 的方式    遍历
		for(String k:a){
			System.out.println(k);
		}
	}

}
最后注意:TreeSet需要重写Comparable方法

 




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值