前言–java类集是开发中用得最多的了吧,方便,功能强。
一、类集框架主要接口

接口的继承关系:

1.List接口—List中允许有重复的数据
List

class Student{    private String name;    private String age;    //无参和有参的构造    getter/setter...}public class Test{    public static void main(String[] args){        Collection c=new ArrayList();        c.add(new Student("刘欢",10));//Object obj=new Student("刘欢",10);        c.add(new Student("赵四",11));        c.add(new Student("王五",12));        //把集合转为数组        Object[] o=c.toArray();        for(int i=0;iout.println(o[i]);            //如果要根据集合中的名字取值则:            Student s=(Student)o[i];//向下转型即可            System.out.println("姓名:"s.getName()+'\t'+"年龄:"+s.getAge());        }        //直接使用迭代(遍历)输出        Iterator it=c.iterator();        if(it.hasNext()){            System.out.println(it.next());//遍历输出            //如果想直接输出名字或者年龄,则需要向下转型            Student stu=(Student)it.next();            System.out.println("姓名:"stu.getName()+'\t'+"年龄:"+stu.getAge());        }    }}

1.1.LinkedList
LinkedList:表示的是一个链表的操作类.

import java.util.LinkedList ;public class LinkedListDemo02{    public static void main(String args[]){        LinkedList link = new LinkedList() ;        link.add("A") ; // 增加元素        link.add("B") ; // 增加元素        link.add("C") ; // 增加元素        System.out.println("1-1、element()方法找到表头:" + link.element()) ;        System.out.println("1-2、找完之后的链表的内容:" + link) ;        System.out.println("2-1、peek()方法找到表头:" + link.peek()) ;        System.out.println("2-2、找完之后的链表的内容:" + link) ;        System.out.println("3-1、poll()方法找到表头:" + link.poll()) ;        System.out.println("3-2、找完之后的链表的内容:" + link) ;    }};

1.2Queue接口:是Collection的子接口,定义如下:public interface Queue extends Collection

import java.util.LinkedList ;public class LinkedListDemo03{    public static void main(String args[]){        LinkedList link = new LinkedList() ;        link.add("A") ; // 增加元素        link.add("B") ; // 增加元素        link.add("C") ; // 增加元素        System.out.print("以FIFO的方式输出:") ;        for(int i=0;i<=link.size()+1;i++){            System.out.print(link.poll() + "、") ;        }    }};

2.Set接口–不能加入重复的元素
Set接口常用的子类:
2.1散列存放(无序):HashSet

import java.util.HashSet ;import java.util.Set ;public class HashSetDemo01{    public static void main(String args[]){        Set allSet = new HashSet() ;        allSet.add("A") ;   // 增加内容        allSet.add("B") ;   // 增加内容        allSet.add("C") ;   // 增加内容        allSet.add("C") ;   // 重复内容        allSet.add("C") ;   // 重复内容        allSet.add("D") ;   // 增加内容        allSet.add("E") ;   // 增加内容        System.out.println(allSet) ;    }};
2.2有序存放(可自动排序):TreeSet
import java.util.TreeSet ;import java.util.Set ;public class TreeSetDemo01{    public static void main(String args[]){        Set allSet = new TreeSet() ;        allSet.add("C") ;   // 增加内容        allSet.add("C") ;   // 重复内容        allSet.add("C") ;   // 重复内容        allSet.add("D") ;   // 增加内容        allSet.add("B") ;   // 增加内容        allSet.add("A") ;   // 增加内容        allSet.add("E") ;   // 增加内容        System.out.println(allSet) ;    }};

深入:使用hashCode(),equals(),取消掉重复元素,

import java.util.Set ;import java.util.HashSet ;class Person{    private String name ;    private int age ;    public Person(String name,int age){        this.name = name ;        this.age = age ;    }    public boolean equals(Object obj){  // 覆写equals,完成对象比较        if(this==obj){            return true ;        }        if(!(obj instanceof Person)){            return false ;        }        Person p = (Person)obj ;    // 向下转型        if(this.name.equals(p.name)&&this.age==p.age){            return true ;        }else{            return false ;        }    }    public int hashCode(){        return this.name.hashCode() * this.age  ; // 定义一个公式    }    public String toString(){        return "姓名:" + this.name + ";年龄:" + this.age ;    }};public class RepeatDemo02{    public static void main(String args[]){        Set allSet = new HashSet() ;        allSet.add(new Person("张三",30)) ;        allSet.add(new Person("李四",31)) ;        allSet.add(new Person("王五",32)) ;        allSet.add(new Person("王五",32)) ;        allSet.add(new Person("王五",32)) ;        allSet.add(new Person("赵六",33)) ;        allSet.add(new Person("孙七",33)) ;        System.out.println(allSet) ;    }};

更多相关文章

  1. adnroid:layout_weight
  2. 数组资源
  3. Android(安卓)5.1开机自启动示例程序(Activity,APP包启动)
  4. LinearLayout 分割线
  5. Android框架ButterKnife的使用详解,butterknife8.x.x版本的使用方
  6. robotium原理之获取WebElement元素
  7. android之ListView和BaseAdapter的组合使用
  8. Android零碎知识总结
  9. android网易跟帖盖楼布局

随机推荐

  1. 1. 1 布局管理器
  2. Android(安卓)Studio使用gradle导出jar包
  3. Android(安卓)TabLayout控件
  4. ViewStub must have a valid layoutResou
  5. 如何通过 Saltstack pillar组件定义与被
  6. Android客户端集成支付宝快捷支付
  7. Android单元测试 Only the original thre
  8. Android(安卓)Paint之MaskFilter详解
  9. Android——获取系统图片/拍照/获取图片
  10. 设置Android(安卓)SDK tools工作路径环境