List:有序可重复
         ArrayList: 写入数据时,数据在尾部的时候快,取数快

LinkedList:  集合中间部分添加值和删除值得时候快

Set:不包含重复元素,但是无序,
           1、一个不包含重复元素(值)的 collection,
                   set在每次添加元素(值)的时候,都会把前面的元素和新增的元素进行比               较,如果是true,重复,丢弃;false:添加到集合当中。
    Set集合当中是没有重复数据的.
            1.1 HashSet:实现了Set接口,由哈希表支持,它不保证 set 的迭代顺序;特别       是它不保证该顺序恒久不变。此类允许使用 null 元素。此类事不同步的, 
HashSet执行add 方法添加元素
       1)执行set的add方法添加元素

import java.util.Set;
           import java.util.HashSet;
     public class Demo{
    public static void main(String [] args){
Set set = new HashSet();
    // add String
set.add("xiaoming");
set.add("xiaohua");  
set.add("xiaogang");
set.add("xiaohua");

System.out.println("xiaoming".hashCode());
System.out.println("xiaohua".hashCode());
System.out.println("xiaogang".hashCode());
System.out.println("xiaohua".hashCode());
System.out.println("*****");
System.out.println(set);
}
}

set集合取数方式:
 迭代器:
 foreach循环:(加强版for循环,遍历(从第一个位置到最后一个位置))
语法:
for(每一次遍历接收的对象声明: 需要被遍历的集合或数

代码块;
}

TreeSet: 有序(大小排序)
是根据二叉树的结构进行自然顺序排序;
排序规则定义有:
自定义规则 :自己独立写一个排序规则,Comparator
本身需要排序的对象,实现接口,完成排序规则; Comparable

import java.util.*;
public class Demo2{
public static void main(String [] agrs ){
Set<Student> set = new HashSet<Student>();
//add  Student
Student s = new Student("xiaogang",18);
Student s1 = new Student("xiaohua",19);
Student s2 = new Student("xiaodu",18);
Student s3 = new Student("xiaohua",19);

set.add(s); // 1已经有值
set.add(s1);// 1.调用equals方法   true 丢弃  false
set.add(s2);
set.add(s3);
set.remove(s);//移除
for(Student ss: set){
System.out.println(ss);
}
}
}

class Student{
private String name;
private Integer age;
public Student(String name,Integer age){
this.name = name;
this.age = age;
}
// 获取你的哈希值,,,,
public int hashCode() {
       //名字相同
        //return 1;
        return name.hashCode() + age.hashCode();
    }
    //Object anObject 表示新加入的对象    this 表示要和他比较的对象
public boolean equals(Object anObject) {
       //把对象强制转换为Student
        Student s = (Student)anObject;
       //比较两个对象 是不是同一个对象
       if(this == s){
        return true;
        }
       //判断是不是同一个类型
       if(!(anObject instanceof Student)){
        return false;
        }
        //判断两个的年龄是否相等
        if(this.age == s.age){
        return true;//true 表示重复
        }
       return false;

}
//重写父类的  hashCode方法, equals方法
   }

利用treeSet来自定义排序;

import java.util.*;

public class DemoTreeSet{
public static void main(String [] args){

Set <Student>set = new TreeSet<Student>(new MyComparator());

set.add(new Student("xiaohua",18));
set.add(new Student("xdfgdf",17));
set.add(new Student("fhfd",19));
set.add(new Student("sdfger",11));

for(Student s : set){
System.out.println(s);
}

}
}

/**
   自定义排序规则

class MyComparator implements  Comparator{

public int compare(Object o1,Object o2){

return 1;
}
}
*/

/**

实现Comparable类,重写compareTo 方法,然后进行排序  
**/
class Student implements Comparable{
String name;
Integer age;

public Student(String name,Integer age){
this.name = name;
this.age = age;
}

public String toString(){

return "name = "+ name +";age = "+age;
}

public int compareTo(Object o){
 //把后面对象的值强制转换
Student s = (Student)o;
//把年龄 再一次进行排序
return this.age.compareTo(s.age);
}

}

Set集合和List集合相关推荐

  1. 1-17 Set集合和Map集合

    Hash表 Hash,一般翻译做"散列",也有直接音译为"哈希"的,它是基于快速存取的角度设计的,也是一种典型的**"空间换时间"**的做法 ...

  2. Day_8/08(List集合和Set集合)

    目录 一.List集合 1.ArrayList集合 2.LinkedList集合 1.增加元素 2.查询元素 3.修改元素 4.删除元素 二.Set集合 1.HashSet集合 2.LinkedHas ...

  3. scala集合和java集合的转换-List

    scala集合和java集合的转换-List scala的List要想转换成java的list 需要导入对应的类scala.collection.JavaConverters._ import jav ...

  4. Map集合和List集合总结

    Map集合和List集合哪个效率更高 List接口 List集合是一个元素有序(存储有序).可重复的集合,集合中的每个元素都有对应的索引,以便于查询和修改,List集合是允许存储null值的. Lis ...

  5. Collection集合和Map集合循环遍历三种方法

    Collection集合的四种遍历方式: 1.迭代器 public static void main(String[] args) {List<String> list = new Arr ...

  6. Java-Collection集合和Map集合总结

    本文欢迎转载,转载前请联系作者,经允许后方可转载.转载后请注明出处,谢谢! http://blog.csdn.net/colton_null 作者:喝酒不骑马 Colton_Null from CSD ...

  7. 7.Set集合总结(TreeSet集合和HashSet集合)

    一.Set集合 1.Set集合特点 可以去除重复 存取顺序不一致 没有带索引的方法,所以不能使用普通的for循环遍历,也不能通过索引来获取.删除Set集合里面的元素. 2.Set集合中元素的遍历 二. ...

  8. HashMap集合和TreeMap集合

    ---------------------------HashMap集合的遍历 /第一种 package ji_he;import java.util.*;public class Example16 ...

  9. HashSet集合和TreeSet集合

    -----------------------------------HashSet集合 ///HashSet集合的遍历 package ji_he;import java.util.HashSet; ...

最新文章

  1. 搭建Jasig CAS中央认证服务实现单点登录——搭建Tomcat并实现SSL安全连接
  2. pytorch 之手写数字生成网络
  3. STM32的时钟配置随笔
  4. 让你用 Chrome 上网快到想哭:Vimium
  5. Java / JVM是如何构建的? 采用OpenJDK是您的答案!
  6. java开发工程师工作内容怎么写
  7. Java笔记12-函数式接口
  8. hihoCoder #1162 : 骨牌覆盖问题·三 (矩阵快速幂,DP)
  9. 变相裁员?人人车发奇葩通知:未离职员工每天打卡三次 只抄规则
  10. py2neo match
  11. 可视化管理_供应链可视化管理作用与现状分析
  12. 基于javaweb+springboot的企业员工绩效工资管理系统(java+SpringBoot+FreeMarker+Mysql)
  13. 做正确的事和正确的做事的区别
  14. 新一代三维GIS技术资料集锦
  15. NIUSHOP wap端分类显示
  16. mac访问windows中共享的磁盘
  17. Arch-base-vs-iso
  18. 利盟linux驱动下载,利盟Lexmark X342n 驱动下载
  19. 使用晨曦记账本,认识记账的重要性
  20. 【从零开始的MC服务器】第四步:服务器的权限组GroupManager

热门文章

  1. 心脏线绘制python_这个心脏线怎么画?
  2. 几种常用非关系型数据库
  3. 笔记︱目标人群优选的Look-aLike Modeling案例集锦
  4. 历代高通/苹果/三星/联发科/华为旗舰处理器概览,更新于2021年1月
  5. SQL server查询没有学全所有课程的同学的信息
  6. CAD Electrical 符号编译器变成了黑盒编译器怎么办
  7. 【STM32】STM32的时钟系统
  8. 74HC595D特点
  9. 编码方式:UTF-8和GBK
  10. 使用大数据分析建立电力企业用户画像的一种思路