本节主要结合用例讲述Java中Map类、Set类、List类如何使用。

Java中有封装好的集合类,常用的有Map类、Set类、List类,简单说明一下他们的用法。

List类,常用有ArrayList和LinkedList,前者存可变数组,相当于数据结构中的顺序表;后者采用链表结构存,相当于单链表。

类方法: add(i)、size()、get(i)、set(i, obj)

Set类:常用有HashSet和TreeSet,如名,建哈希表/树存储。

类方法:first()、last()、subSet()、等

Map接口: 同时存key和value。

类方法:put(key, value)、get(key)、keySet()、values()等

补充知识:泛型

Object前面已经讲过,是所有变量类的父类,可在写方法时定义变量为Object,作为泛型。

具体使用方法时,用形如: new String(”123“);  代替object。

集合类和泛型具体测试样例如下,看一看就都懂啦~

package re07;

import java.util.*;

public class CollectionTest {

    private Object b;

    public void setB(Object b) {
this.b = b;
} public Object getB() {
return b;
} public static void main(String[] args) { Collection<String> list1 = new ArrayList<>(); // Collection练习
list1.add("a");
list1.add("b");
System.out.println(list1.size()); List<String> list2 = new ArrayList<>(); // list集合练习
list2.add("a");
list2.add("b");
for (int i = 0; i < list2.size(); i++) {
System.out.println(list2.get(i));
} TreeSet<String> tree = new TreeSet<>(); // set集合练习
tree.add("a");
tree.add("b");
tree = (TreeSet<String>) tree.subSet("a", "b");
System.out.println(tree.first()); Map<String, String> map = new HashMap<>(); // map集合练习
map.put("1", "a");
map.put("2", "b");
System.out.println(map.values().toString() + map.keySet().toString()); // 泛型使用
CollectionTest test = new CollectionTest();
test.setB(new String("泛型")); // 向上转型 System.out.println((String)test.getB()); // 向下转型
} }

java复习(7)---集合类、泛型的更多相关文章

  1. Java复习——反射和泛型的复习

    反射 Class类 一个类被类加载器加载到内存之中,占有一片区域,这个空间里的内容就是类的字节码,不同的类的字节码是不一样的,这一个个空间页可以使用类来表示,这就是Class类. 根据这个概念可知:不 ...

  2. JAVA基础部分复习(三、泛型)

    JAVA泛型的基本使用: /** * JAVA泛型的使用 * 定义:泛型的本质是参数化类型,就是说所操作的数据类型被指定为一个参数. * * 定义泛型方法的规则 * 1.所有泛型方法声明都有一个类型参 ...

  3. java 复习001

    java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时 ...

  4. JAVA提高六:泛型

    在面向对象编程语言中,多态算是一种泛化机制.例如,你可以将方法的参数类型设置为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数,这样的方法将会更具有通用性.此外,如果将方法参数声明为接口,将 ...

  5. java 复习总结

    java 复习总结 命名方法 创建文件的名称应该和类的名称一致,不然会报错. 类采用首字母大写的方式来命名,如果是多个单词的类名,则每个单词首字母都大写,例如:HelloWorld . 方法采用驼峰命 ...

  6. 《徐徐道来话Java》(2):泛型和数组,以及Java是如何实现泛型的

    数组和泛型容器有什么区别 要区分数组和泛型容器的功能,这里先要理解三个概念:协变性(covariance).逆变性(contravariance)和无关性(invariant). 若类A是类B的子类, ...

  7. java 复习003 之排序篇

    由java 复习003跳转过来的C语言实现版见some-sort-algorithms 快速排序(不稳定 O(n log n)) package vell.bibi.sort_algorithms; ...

  8. java复习(1)---java与C++区别

    [系列说明]java复习系列适宜有过java学习或C++基础或了解java初步知识的人阅读,目的是为了帮助学习过java但是好久没用已经遗忘了的童鞋快速捡起来.或者教给想快速学习java的童鞋如何应用 ...

  9. 【原】Java学习笔记027 - 泛型

    package cn.temptation.test; import java.util.ArrayList; import java.util.Iterator; public class Samp ...

随机推荐

  1. Visual Studio 2017正式版使用一些疑问

    刚升级完2017,是从2015升上去的,总体没有什么大的问题,就是报了一些ts的类型检查的问题,最重要的就是编译速度变得好慢啊,希望尽快出来补丁修复,以前一个解决方案只要10+秒,现在要50秒,表示体 ...

  2. Selenium 使用css selector (资源来源于网络)

    Selenium - CSS Selector 昨天我练习了用CSS(即层叠样式表Cascading Stylesheet) Selector来定位(locate)页面上的元素(Elements).S ...

  3. [HDOJ2572]终曲

    Problem Description 最后的挑战终于到了!站在yifenfei和MM面前的只剩下邪恶的大魔王lemon一人了!战胜他,yifenfei就能顺利救出MM.Yifenfei和魔王lemo ...

  4. SQLServer存储过程实现单条件分页

    SQLServer Procedure Pagination_basic: ALTER PROCEDURE [qiancheng].[Pagination_basic] ( ), --name of ...

  5. Archlinux 升级 pacman 时遇到的问题及其解决

    这是 Archlinux 升级时经常碰到的老问题.提示如下 问题来了 # yaourt -Syua ==> 警告:使用 root 用户构建软件包存在风险. 请使用非特权用户运行 yaourt . ...

  6. 使用mysql_Front链接mysql,出现警告access denied for user ''@'localhost'

    刚刚安装好的mysql5.7,想来使用工具方便一下,却一直有报这个错误: 最后找出原因:我给root用户设置的密码神不知鬼不觉的消失了,无奈, 解决办法一: cmd->mysql -h loca ...

  7. java-信息安全(一)-BASE64,MD5,SHA,HMAC

    概述 信息安全基本概念: BASE64 编码格式 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HM ...

  8. 用ListView实现对数据库的内容显示

    用ListView实现对数据库的内容显示 创建一个触发机制 ---------(作用)将数据读入ArrayList集合中 MyBase base = new MyBase(); SQLiteDatab ...

  9. 豆瓣电影Top250基本信息抓取

    豆瓣电影Top250基本信息抓取 最近想看电影,但是想看一些有营养的,所以就去豆瓣上看电影评分,但是豆瓣上的评分没有排序,所以就用python把网站内容爬下来了,然后按评分做了排序.具体代码参见git ...

  10. Python快速入门(3)

    数据结构: 列表的元素可变,用[] or list()创建. 元祖的元素不可变,用() or tuple()创建. 集合的元素不可重复,用{} or set()创建. 字典的存放K-V,用dict() ...