java中的框架集合MyEclipse 10开发

首先说一下java中的集合框架的作用,它主要的作用就是能够灵活的变换长度,举个例子我们定义一个数组大家都知道数组定义时需要定义长度而且如果用多了会数组下标越界,用少了就会浪费空间那么有什么办法能够按照添加数据的个数来自动调整大小呢?答案是有的那就是框架集合它能够灵活的解决前面说的问题下面给大家看张图片


其中Collection和Map都是接口类如果不懂接口可以去学习一下 他们都有两个实现类这两个实现类就是我说的集合那么来说一下他们的特性:

Collection是接口储存一组不唯一(允许重复)、无序对象。

Set接口继承Collection接口,存储一组唯一(不允许重复)、无序的对象。

list接口继承Collection接口,存储一组不唯一(允许重复)、有序(以元素插入的次序来放置元素,不会重新排序)的对象。

Map接口存储一组成对的键一值对象,提供key(键)到value的映射。Map中的key不要求有序,不允许重复。value同样不要求有序,但允许重复

还有一个是迭代器Iterator接口是负责定义访问和遍历元素接口。

下面介绍主要介绍一下:

List

list中有两个常用类Arraylist和LinkedList。它们都可以容纳所有类型的对象,包括null允许重复,并且都保证元素的存储顺序。

Arraylist对数组进行了封装,实现了长度可变的数组,存储方式和数组一样下面给张图片:

以上这些就是Arraylist常用的方法下面说一下如何定义:List  名字=new Arraylist();

这样就能定义一个Arraylist的集合下面我们用上面的方法做个案例:

public static void main(String[] args) {
		//定义Arraylist集合shift+Ctrl+O导包
		List dogs=new ArrayList();
		//添加数据
		dogs.add(1);
		dogs.add(2);
		dogs.add(3);
		dogs.add(4);
		dogs.add(5);
		//输出共有几条数据
		System.out.println("共有"+dogs.size()+"条数据");
		//在下标为1的地方添加一条数据当前位置的数据退后一个位置
		dogs.add(1,6);
		//遍历集合
		for (int i = 0; i < dogs.size(); i++) {
			System.out.println((Integer)dogs.get(i));
		}
		//遍历集合2
		for (Object K : dogs) {
			System.out.println((Integer)K);
		}
		//判断是否存在数据
	System.out.println(dogs.contains(1));	
	//删除
	dogs.remove(1);
	}

}

以上是我对Arraylist做的一些操作其运行结果为:
下面说一下LinkedList,其实Arraylist中的方法是可以在LinkedList中用而且LinkedList多了几个方法下面看图:
以上就是多的几个方法  都是对末尾和头部进行操作的方法其实说
Arraylist的特点: 相当于升级版的数组,可以根据需要自动扩展长度,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。
Linkedlist的特点:插入、删除元素时效率比较高
下面给段代码:

//定义Arraylist集合shift+Ctrl+O导包因為那些方法是Linkedlist独有的所以前面new的不是list而是linkedlist
	   LinkedList dogs=new LinkedList();
	 		//添加数据
	 		dogs.add(1);
	 		dogs.add(2);
	 		dogs.add(3);
	 		dogs.add(4);
	 		dogs.add(5);
	 		//首部添加
	 		dogs.addFirst(10);
	 		System.out.println("删除返回:"+dogs.removeLast());
	 		System.out.println("返回最后一个"+dogs.getLast());
	 		//输出共有几条数据
	 		System.out.println("共有"+dogs.size()+"条数据");
	 		//在下标为1的地方添加一条数据当前位置的数据退后一个位置
	 		dogs.add(1,6);
	 		//遍历集合
	 		for (int i = 0; i < dogs.size(); i++) {
	 			System.out.print((Integer)dogs.get(i));
	 		}
	 		//遍历集合2
	 		System.out.println();
	 		for (Object K : dogs) {
	 			System.out.print((Integer)K);
	 		}
	 		//判断是否存在数据
	 	System.out.println("\n"+dogs.contains(1));	
	 	//删除
	 	dogs.remove(1);
	 	}

上面我用了三个方法其他方法大家可以自己去实验下面是运行结果:
下面讲解Map它是储存一组成对的键一值对象,提供key(键)到value(值)的映射。它的方法有:
这些方法其实个Arraylist差不多就是参数不一样毕竟是键和值得操作 它的特性就是可以通过键来获得值下面给代码:
//定义HashMap集合shift+Ctrl+O导包
	   HashMap dogs=new HashMap();
	 		//添加数据
	 		dogs.put("1", 1);
	 		dogs.put("2", 2);
	 		dogs.put("3", 3);
	 		dogs.put("4", 4);
	 		//输出共有几条数据
	 		System.out.println("共有"+dogs.size()+"条数据");
	 		//遍历集合
	 		System.out.println();
	 		for (Object K : dogs.keySet()) {
	 			String n=(String)K;
	 			System.out.print(dogs.get(n));
	 		}
	 		//判断是否存在数据
	 	System.out.println("\n"+dogs.containsKey("1"));	
	 	//删除
	 	dogs.remove("1");
	 	//再次遍历
	 	for (Object K : dogs.keySet()) {
	 		String n=(String)K;
 			System.out.print(dogs.get(n));
 		}
	 	//清空数据
	 	dogs.clear();
	 	}

以上操作增、删、查 、改的话就是同样的键值再添加一次下面是运行结果:
其实java中对于集合遍历还有一种方法那就是使用迭代器Iterator它返回的是迭代器对象所以使用Iterator对象接收Map的话需要先点出keyset()方法再点iterator方法下面给代码:
//迭代器遍历
	 	Iterator k= dogs.keySet().iterator();
	 	while (k.hasNext()) {
			String g = (String) k.next();
			System.out.print(dogs.get(g));
			
		}

除了Map其他都不用点keyset别的也没有
下面是泛型
泛型的话就是在Arraylist、LinkedList、HashMap后面加个类型约束<类型>Map要两个<类型,类型>下面给大家new几个:
  //定义泛型
	   HashMap<String,Integer> dogs=new HashMap<String,Integer>();
	   List<Integer> j=new ArrayList<Integer>();
	   LinkedList<String> g=new LinkedList<String>();

操作方法就和上面介绍的一样
                                                                                                                                                  好了今天分享就到这里

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值