java 常用的三大集合类

一、Set集合。其主要实现类有HashSet、TreeSet。存放对象的引用,不允许有重复对象。

代码:

  public class SetTest {

    public static void main(String[] args) {
      Set set=new HashSet();
       //添加数据
        set.add("abc");
      set.add("cba");
      set.add("abc");//故意重复
      set.add(123);
      set.add(true);
  
      System.out.println("集合元素个数:"+set.size());
        //遍历出集合中每一个元素
       Iterator it=set.iterator();
       while(it.hasNext()){
         System.out.println(it.next());
        }
     }
  }

通过java的equals()方法判别。如果有特殊需求须重载equals()方法。

1.HashSet(),调用对象的hashCode()方法,获得哈希码,然后再集合中计算存放对象的位置。通过比较哈希码与equals()方法来判别是否重复。所以,重载了equals()方法同时也要重载hashCode()方法。

2.TreeSet(),继承ShortedSet接口,能够对集合中对象排序。默认排序方式是自然排序,但该方式只能对实现了Comparable接口的对象排序,java中对Integer、Byte、Double、Character、String等数值型和字符型对象都实现了该接口。 
如果有特殊排序,须重载该接口下的compareTo()方法或通过Comparator接口的实现类构造集合。

二、List集合,其主要实现类有LinkedList、ArrayList,前者实现了链表结构,后者可代表大小可变的数组。List的特点是能够以线性方式储蓄对象,并允许存放重复对象。List能够利用Collections类的静态方法sort排序。sort(List list)自然排序;sort(List listm,Comparator codddmparator)客户化排序。

代码:

  public class ListTest {

    //ArrayList
     static void testOne(){
      List list=new ArrayList();
       //添加数据
       list.add("abc");
       list.add("cba");
       list.add(123);
       list.add(0,"fist");
       //查看集合长度
       System.out.println("存放"+list.size()+"个元素");
       list.remove(0);//删除第一个元素
       //查看集合中是否包含cba
       if(list.contains("cba")){
        System.out.println("包含元素cba");
    }
  
       //取出集合中第二个元素
       System.out.println("第二个元素是:"+list.get(1));
  
       //取出集合中所有元素
       for (int i = 0; i < list.size(); i++) {
         System.out.println(list.get(i));
      }
     }
 
      //LinkedList
      static void testTwo(){
      LinkedList list=new LinkedList();
      //添加元素
      list.add("aaaa");
      list.add(123123);
      list.addFirst("1111111");
      list.addLast("2222222");
      list.add("33333333");
  
      System.out.println("元素个数:"+list.size());
      //取出第三个元素
      System.out.println("第三个元素是:"+list.get(2));
  
      //第一个元素
      System.out.println("第一个元素:"+list.getFirst());
      System.out.println("最后一个元素:"+list.getLast());
  
      //删除第一个元素
      list.removeFirst();
  
      for (Object object : list) {
        System.out.println(object);
      }
     }
 
 
    public static void main(String[] args) {
      //testOne();
      testTwo();
     }
  }

三、Map集合,其主要实现类有HashMap、TreeMap。Map对值没有唯一性要求,对健要求唯一,如果加入已有的健,原有的值对象将被覆盖。HashMap类按照哈希算法来存取键对象,可以重载equals()、hashCode()方法来比较键,但是两者必须一致。TreeMap,可自然排序,也可通过传递Comparator的实现类构造TreeMap。

代码:

  public class MapTest {

    public static void main(String[] args) {
       //实例化一个集合对象
       Map map=new HashMap();
       //添加数据
       map.put("P01", "zhangSan");
       map.put("P02", "Lucy");
       map.put("PSex", "男");
       map.put("PAge", "39");
       map.put("PAge", "22");//key,重复会被后面的覆盖
  
       //判断是否有一个key为PSex
       if(map.containsKey("PSex")){
        System.out.println("存在");
        }
      System.out.println("集合大小:"+map.size());
      System.out.println("输出key为PAge的值:"+map.get("PAge"));
  
      //遍历出Map集合中所有数据
      Iterator it=map.keySet().iterator();
      while(it.hasNext()){
      String key=it.next().toString();
      System.out.println("key="+key+",value="+map.get(key));
    }
      /*
      Set set=map.keySet();//取出map中所有的key并封装到set集合中
      Iterator it=set.iterator();
      while(it.hasNext()){
      String key=it.next().toString();
      System.out.println("key="+key+",value="+map.get(key));
    }
      */
    }
  }

  

时间: 2024-08-28 11:53:23

java 常用的三大集合类的相关文章

【总结】Java常用集合接口与集合类

目录 常见集合接口概述 Collection<E> Map<K,V> Collection接口 Map接口 补充内容 ? 常见集合接口概述 Java中包含许多集合接口.其中比较常见的主要是Collection接口和Map接口: 1.1 Collection<E> 由单元素组成的集合.其比较常见的直接子接口是List.Set和Queue接口. ? ? ? ? 表1.1 Collection<e>接口常用方法 编号 方法原型 解释 备注 1 boolean?ad

java常用代码优化

摘要: 本文大多技术围绕调整磁盘文件 I/O,但是有些内容也同样适合网络 I/O 和窗口输出. 第一部分技术讨论底层的I/O问题,然后讨论诸如压缩,格式化和串行化等高级I/O问题.然而这个讨论没有包含应用设计问题,例如搜索算法和数据结构,也没有讨论系统级的问题,例如文件高速缓冲. Java语言采取两种截然不同的磁盘文件结构.一个是基于字节流,另一个是字符序列.在Java 语言中一个字符有两个字节表示,而不是像通常的语言如c语言那样是一个字节.因此,从一个文件读取字符时需要进行转换.这个不同在某些

Google的Java常用类库 Guava

Guava 中文是石榴的意思,该项目是 Google 的一个开源项目,包含许多 Google 核心的 Java 常用库. 1. 基本工具 [Basic utilities] 让使用Java语言变得更舒适 1.1 使用和避免null:null是模棱两可的,会引起令人困惑的错误,有些时候它让人很不舒服.很多Guava工具类用快速失败拒绝null值,而不是盲目地接受 1.2 前置条件: 让方法中的条件检查更简单 1.3 常见Object方法: 简化Object方法实现,如hashCode()和toSt

第一章 Java常用的并发类

注:本系列博客主要参考于<分布式Java应用:基础与实践>,林昊 著 1.常用的并发集合类 ConcurrentHashMap:线程安全的HashMap的实现 CopyOnWriteArrayList:线程安全且在读操作时无锁的ArrayList CopyOnWriteArraySet:基于CopyOnWriteArrayList,不添加重复元素 ArrayBlockingQueue:基于数组.先进先出.线程安全,可实现指定时间的阻塞读写,并且容量可以限制 LinkedBlockingQueu

java 常用数据结构

本章介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.例如,Java提供日期(Data)类.日 历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack).向量 (Vector) .位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构. 图1.1给出了java.util包的基本层次结构图.下面我们将具体介绍其中几个重要的类. ┌java.util.BitS

java 常用工具

System:类中的属性方法都是静态的.无法实例化 err:"标准"错误输出流 in:"标准"输入流 out:"标准"输出流 常见方法: long currentTimeMillis();获取当前时间的毫秒值 Properties    getProperties(); 获取系统属性 Properties集合中存储的都是String类型的键和值. Runtime:没有构造方法摘要,说明该类不可以创建对象. 方法又是非静态,说明该类提供静态返回该类

JAVA基础——面向对象三大特性:封装、继承、多态

JAVA面向对象三大特性详解 一.封装 1.概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: 只能通过规定的方法访问数据.     隐藏类的实例细节,方便修改和实现. 3.封装的实现步骤 需要注意:对封装的属性不一定要通过get/set方法,其他方法也可以对封装的属性进行操作.当然最好使用get/set方法,比较标准. A.访问修饰符 从表格可以看出从上到下封装性越来越差. B.this关键字 1.this关键字代表当前

java常用正则表达式

java常用正则表达式 1.^\d+$ //匹配非负整数(正整数 + 0) 2.^[0-9]*[1-9][0-9]*$ //匹配正整数 3.^((-\d+) ?(0+))$ //匹配非正整数(负整数 + 0) 4.^-[0-9]*[1-9][0-9]*$ //匹配负整数 5.^-?\d+$ //匹配整数 6.^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0) 7.^(([0-9]+\.[0-9]*[1-9][0-9]*) ?([0-9]*[1-9][0-9]*\.[0-9]+)

java常用100例

作了好事受到职责而坚持下去,这才是奋斗的本色.--巴尔扎克 本讲内容:java常用100例 例1:打印金字塔 public class T { public static void main(String[] args){ int lay=10; for(int i=1;i<=lay;i++){//表示层 for(int j=1;j<=lay-i;j++){//找出空格规律 System.out.print(" "); } for(int k=1;k<=i*2-1;k