public class ListTest {

    public static void main(String[] args) {
//创建几个新闻对象
News news1=new News(1, "新闻1");
News news2=new News(2, "新闻2");
News news3=new News(3, "新闻3");
//创建一个List集合
List list=new ArrayList(); //现在 集合中存放的Object
list.add(1);
list.add("abc");
list.add(news1);
//遍历集合
for (Object object : list) {
System.out.println(object);
} System.out.println("**************************");
/*
* 现在 我只想存放 News 新闻
* 泛型集合
* 在创建集合的时候,就已经规定了 集合中允许存放的类型!
* 如果后续进行新增操作时候,插入了类型不一致的数据,会编译报错!
*/
List<News> news=new ArrayList<News>(); //new ArrayList();
//news.add(1); 编译报错
//news.add(null); 可以存放 Null
news.add(news1);
news.add(news2);
news.add(news3);
System.out.println("集合的大小:"+news.size()); //4
//遍历
for (News n : news) {
System.out.println(n.getTitle()); //不需要强制类型转化 直接输出
}
System.out.println("***********************"); //List <int> i=new ArrayList(); 不能使用基本数据类型
List<Integer> i=new ArrayList(); //对应类型的封装类
List<String> s=new ArrayList(); //只能存放String类型 }
}

Map的泛型集合

创建Student实体类

public class Student {
private Integer studentNo; //学生的编号 是唯一的
private String name;
private Integer age;
private String sex; @Override
public String toString() {
return "Student [studentNo=" + studentNo + ", name=" + name + ", age="
+ age + ", sex=" + sex + "]";
}
public Student() {
super();
}
public Student(Integer studentNo, String name, Integer age, String sex) {
super();
this.studentNo = studentNo;
this.name = name;
this.age = age;
this.sex = sex;
} public Integer getStudentNo() {
return studentNo;
}
public void setStudentNo(Integer studentNo) {
this.studentNo = studentNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
} public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}

创建测试类

public class MapTest {
public static void main(String[] args) {
/*
* 创建一个Map的泛型集合
* 之前
* Map map=new HashMap();
* key和value全都是 Object类型
*/
Map m=new HashMap();
m.put(1, 2);
m.put("1","2");
m.put(1.0, 2.0);
System.out.println("map集合的大小:"+m.size()); //
System.out.println("************************************"); //创建几个新闻对象
Student stu1=new Student(1, "奥黑驴1", 1000, "女");
Student stu2=new Student(2, "奥黑驴2", 10000, "女");
Student stu3=new Student(3, "奥黑驴3", 1000, "女");
//泛型集合 key只能是Integer
Map<Integer,Student> map=new HashMap<Integer, Student>();
//map.put(1, 1); 默认装箱操作 int基本数据类型转换成Interge封装类
map.put(stu1.getStudentNo(), stu1);
map.put(stu2.getStudentNo(), stu2);
map.put(stu3.getStudentNo(), stu3);
//遍历之前获取keySet
Set<Integer> keySet = map.keySet();
//01. for加强
for (Integer key : keySet) {
//根据key取得对应的Student对象
System.out.println(map.get(key));
}
System.out.println("***************************");
//02. iterator
Iterator<Integer> it = keySet.iterator();
while (it.hasNext()) {
/*Integer key=it.next();
map.get(key);*/
System.out.println(map.get(it.next()));
}
System.out.println("***************************");
/*
* 03. entrySet() 同时可以获取 key和value
* 之前都是先获取key 之后拿key取得value
*/
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Entry entry = (Entry) iterator.next();
System.out.println("map的key===>"+entry.getKey());
System.out.println("map的value===>"+entry.getValue());
}
}
}

java集合框架02的更多相关文章

  1. Java 集合框架 02

    集合框架· LinkedList 和 泛型 去除ArrayList中重复字符串元素 * A:案例演示 * 需求:ArrayList去除集合中字符串的重复值(相同内容的字符串) * 思路:创建新集合方式 ...

  2. java集合框架02——Collection架构与源码分析

    Collection是一个接口,它主要的两个分支是List和Set.如下图所示: List和Set都是接口,它们继承与Collection.List是有序的队列,可以用重复的元素:而Set是数学概念中 ...

  3. 20180826(02)-Java集合框架

    Java 集合框架 早在Java 2中之前,Java就提供了特设类.比如:Dictionary, Vector, Stack, 和Properties这些类用来存储和操作对象组. 虽然这些类都非常有用 ...

  4. Java 集合系列 02 Collection架构

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  5. Java集合框架Collection

    转自:http://www.cdtarena.com/javapx/201306/8891.html [plain] view plaincopyprint?01.在 Java2中,有一套设计优良的接 ...

  6. Java集合框架之四大接口、常用实现类

    Java集合框架 <Java集合框架的四大接口> Collection:存储无序的.不唯一的数据:其下有List和Set两大接口. List:存储有序的.不唯一的数据: Set:存储无序的 ...

  7. 我所理解Java集合框架的部分的使用(Collection和Map)

    所谓集合,就是和数组类似——一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接 ...

  8. 【转载】Java 集合框架

    http://wangkuiwu.github.io/2012/02/03/collection-03-arraylist/ 网上比较全的Java集合框架教程. 注:transient是Java语言的 ...

  9. Java集合框架之Vector浅析

    Java集合框架之Vector浅析 一.Vector概述: 位于java.util包下的Vector是Java集合框架的重要一员,虽然没有ArrayList那么的常用,但是我们还要对其做相关学习: 1 ...

随机推荐

  1. PS纯手式打造不规则颜色的规则方块—学习教程

  2. css3之box-sizing

    css盒子模型中包括几种重要的属性,包括margin.border.padding以及content.但浏览器对其盒子模型的解释则有所不痛,启用标准模式还是IE(怪)模式是与当前页面的文档声明相关的. ...

  3. [jQuery] $.grep使用

    1.$.grep的功能是查找过滤功能的数组,原数组不受影响. 2.参数定义 jQuery.grep( array, function(elementOfArray, indexInArray), [ ...

  4. js与jquery获取父元素,删除子元素的不同方法

    var obj=document.getElementById("id");得到的是dom对象,对该对象进行操作的时候使用js方法 var obj=$("#id" ...

  5. Equivalent Strings (字符串相等?)

    Equivalent Strings   E - 暴力求解.DFS Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I ...

  6. 牛人总结python中string模块各属性以及函数的用法,果断转了,好东西

    http://blog.chinaunix.net/uid-25992400-id-3283846.html http://blog.csdn.net/xiaoxiaoniaoer1/article/ ...

  7. 在C#中使用属性控件添加属性窗口

    转自原文 在C#中使用属性控件添加属性窗口 第一步,创建在应用程序中将要展现的字段属性为public公有属性.其中,所有的属性必须有get和set的方法(如果不设置get方法,则要显示的属性不会显示在 ...

  8. iOS 写入文件保存数据的方式

     在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeye ...

  9. 委托的lambda表达式

    委托可以用 Lambda 表达式的方法来表示,很多C#的代码都会大量使用 Lambda 表达式,正确理解它的用法还是很重要的. 基础规则: Lambda 运算符 “=>” 左边表示委托实例所需要 ...

  10. 转:Zend Framework 2.0 分析

    文章来自于:http://bbs.phpchina.com/thread-268362-1-1.html ZF2已经发布,与ZF1相比,MVC这一模块内部的实现机制可谓大相径庭,许多用过ZF1的PHP ...