java中set的特点_java -- Set 用法及特点
Hashset 和 ListHashSet用法及特点
// HashSet 和 LinkedHashSet 用法及特点
/**
* 编写一个ArrayList集合 用Set去重
* 为了保证顺序 我们用LinkedHashSet
*/
public static void fun6() {
ArrayList aList = new ArrayList<>();
aList.add("b");
aList.add("a");
aList.add("a");
aList.add("b");
aList.add("c");
aList.add("c");
LinkedHashSet hSet = new LinkedHashSet<>();
hSet.addAll(aList);
aList.clear();
aList.addAll(hSet);
System.out.println(aList);
}
/**
* 编写一个 从键盘键入一连串字符串,将重复的字符串去掉,打印出不通过的字符
*/
public static void fun5() {
System.out.println("请输入一连串字符: ");
Scanner scanner = new Scanner(System.in);
String s1 = scanner.nextLine();
char[] charArray = s1.toCharArray();
HashSet hSet = new HashSet<>();
for (int i = 0; i < charArray.length; i++) {
hSet.add(charArray[i]);
}
System.out.println(hSet);
}
/**
* 编写一个 随机/不重复的 10个数的程序
* Set集合实现不重复
*/
public static void fun4() {
HashSet hSet = new HashSet<>();
while (hSet.size() < 10) {
int i1 = (int)(Math.random() * (20 - 1 + 1) - 1);
hSet.add(i1);
}
System.out.println(hSet);
}
/**
* LinkedHashSet 特点: 有序的(怎么存的可以怎么取出来)
* 底层实现是链表实现
* 同样具有Set的去重的特点
*/
public static void fun3() {
LinkedHashSet lSet = new LinkedHashSet<>();
lSet.add("c");
lSet.add("a");
lSet.add("a");
lSet.add("c");
lSet.add("b");
lSet.add("b");
lSet.add("d");
lSet.add("d");
for (String string : lSet) {
System.out.println(string);
}
}
/**
* 去除对象 --- 需要重写HashCode() 和 equals()
*/
public static void fun2() {
HashSet hSet = new HashSet<>();
hSet.add(new Person("科比" , 18));
hSet.add(new Person("加索尔" , 19));
hSet.add(new Person("费舍尔" , 20));
hSet.add(new Person("拜纳姆" , 21));
hSet.add(new Person("奥多姆" , 22));
hSet.add(new Person("奥多姆" , 22));
hSet.add(new Person("科比" , 18));
hSet.add(new Person("加索尔" , 19));
hSet.add(new Person("费舍尔" , 20));
hSet.add(new Person("拜纳姆" , 21));
for (Person personCopy : hSet) {
System.out.println(personCopy);
}
}
/**
* Set接口特点: 无下标 无顺序 **无重复**
*/
public static void fun1() {
HashSet hSet = new HashSet<>();
hSet.add("c");
hSet.add("a");
hSet.add("a");
hSet.add("c");
hSet.add("b");
hSet.add("b");
hSet.add("d");
hSet.add("d");
for (String string : hSet) {
System.out.println(string);
}
}
TreeSet用法及特点
// 计数器
/**
* 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)
* 按照总分从高到低输出到控制台。
*/
public static void fun13() {
System.out.println("请输入姓名及成绩:");
Scanner scanner = new Scanner(System.in);
TreeSet tSet = new TreeSet<>();
while(tSet.size() < 5) {
String s1 = scanner.nextLine();
String[] split = s1.split(",");
int parseInt = Integer.parseInt(split[1]);
int parseInt2 = Integer.parseInt(split[2]);
int parseInt3 = Integer.parseInt(split[3]);
int num = parseInt + parseInt2 + parseInt3;
tSet.add(new Clases1(split[0], parseInt, parseInt2, parseInt3, num));
}
System.out.print(tSet);
}
/**
* 程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入.
* 把所有输入的整数倒序排列打印.
*/
public static void fun12() {
System.out.println("请输入一个字符串");
Scanner scanner = new Scanner(System.in);
TreeSet tSet = new TreeSet<>(new Compara3());
while(true) {
String s1 = scanner.nextLine();
if (s1.equals("quit")) {
break;
}
int parseInt = Integer.parseInt(s1);
tSet.add(parseInt);
}
System.out.println(tSet);
}
/**
* 键盘接受一个字符串 程序对其中所有字符进行排序
*/
public static void fun11() {
System.out.println("请输入一串字符串: ");
Scanner scanner = new Scanner(System.in);
String s1 = scanner.nextLine();
char[] charArray = s1.toCharArray();
TreeSet tSet = new TreeSet<>(new Compara2());
for (int i = 0; i < charArray.length; i++) {
tSet.add(charArray[i]);
}
System.out.println(tSet);
}
/**
* ArrayList存储无序并且重复的字符串, 要求排序 并且不能去除重复
*/
public static void fun10() {
ArrayList aList = new ArrayList<>();
aList.add("aaa");
aList.add("asd");
aList.add("ww");
aList.add("zz");
aList.add("CC");
aList.add("a");
aList.add("bcd");
aList.add("aaa");
TreeSet tSet = new TreeSet<>(new compara1());
tSet.addAll(aList);
aList.clear();
aList.addAll(tSet);
System.out.println(aList);
}
/**
* 使用比较器 比较排序集合中的元素. 要求保留重复
* 重写比较器comparator接口 实现自己想要的比较方法
* 注意:要记着将comparator的实现类要创建在 集合中
*/
public static void fun9() {
TreeSet tSet = new TreeSet<>(new compara1());
tSet.add("aaa");
tSet.add("asd");
tSet.add("ww");
tSet.add("zz");
tSet.add("CC");
tSet.add("a");
tSet.add("bcd");
tSet.add("aaa");
System.out.println(tSet);
}
/**
* TreeSet存储类对象,进行排序 要在创建对象的类中重写compareTo方法
* TreeSet存储的是类对象, 就要看compareTo的返回值
* 返回0 只是一个值
* 返回正数 按存进顺序 正序
* 返回负数 按存进顺序 倒序
*
* TreeSet 内部使用 二叉树来存储的
* 核心:
* 比我小的数存在左边(返回负数时)
* 比我大的数存在右边(返回正数时)
* 不存储, 两个数相等(返回0时)
*
*/
public static void fun8() {
TreeSet tSet = new TreeSet<>();
tSet.add(new Man("科比", 19));
tSet.add(new Man("乔丹", 20));
tSet.add(new Man("库里", 21));
tSet.add(new Man("格林", 18));
tSet.add(new Man("书豪", 19));
tSet.add(new Man("书豪", 200));
System.out.println(tSet);
}
/**
* TreeSet的特点: **排序**(去重)
*/
public static void fun7() {
TreeSet tSet = new TreeSet<>();
tSet.add(5);
tSet.add(4);
tSet.add(1);
tSet.add(2);
tSet.add(3);
tSet.add(5);
tSet.add(5);
for (Integer integer : tSet) {
System.out.println(integer);
}
}
总结:
Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象
为什么要使用集合类
当你事先不知道要存放数据的个数,或者你需要一种比数组下标存取机制更灵活的方法时,你就需要用到集合类。
java中set的特点_java -- Set 用法及特点相关推荐
- JAVA中的break[标签]continue[标签]用法
原文:JAVA中的break[标签]continue[标签]用法 注意:JAVA中的标签必须放在循环之前,且中间不能有其他语句.例如:tag:for或while或do--while; 1.使用brea ...
- java中Collections.sort() 排序函数的用法
java中Collections.sort() 排序函数的用法: 用Collections.sort方法对list排序有两种方法 第一种是list中的对象实现Comparable接口,如下: /** ...
- 12 java中instanceof运算符的意义和用法
java中instanceof运算符的意义和用法 instanceof运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来标识该对象是否为特定类或者它的子类的一 ...
- java中break什么意思_Java中break的第三种用法说明
在Java中,break语句有三种用法,第一种是用于终止switch语句中的语句序列,第二种是用于退出循环,然而第三种是用作goto语句的"文明"形式! 我们知道,goto语句会破 ...
- java中final详解_Java中final用法与详解
Java中final用法与详解 final作为Java中经常用到的关键字,了解final的使用方法是非常有必要的.这里从final关键字在数据域.方法和类中三个方面分析final关键字的主要用法. f ...
- java中输入的程序_Java中输入的用法
Java中输入 1. 读取输入 1)构建一个Scanner,附属到System.in Scanner in = new Scanner(System.in); 此时可以使用Scanner类的各种方法来 ...
- java中tostring是什么_java中toString()方法有什么用法
在java中toString() 方法用于返回以一个字符串表示的 Number 对象值. 如果该方法使用了原生的数据类型作为参数,返回原生数据类型的 String 对象值. 如果该方法有两个参数, 返 ...
- java中标签怎么用_Java中标签的使用
很多程序设计语言中有goto语句,goto语句的使用,使的程序变得难以读懂,尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用:Java没有goto.然而,在break和continue ...
- java中的string函数_java中string.trim()函数的作用实例及源码
trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; Str ...
最新文章
- 什么?拼命栽培员工,让他强大到足以离开
- Tarjan 算法详解
- android广告页白屏_android 白屏
- SAP Commerce Cloud (电商云) UI 的懒加载功能
- 《深入理解java虚拟机》第1章 走近Java
- Linux报文硬件时间戳,linux下修改时间戳
- 给安利公司董事长郑李锦芬女士的一封信
- Silverlight5 RC调用Win32API
- 怎样成为一名优秀的运维工程师
- Android 科大讯飞、语音听写集成指南
- Windows下安装Redis图文教程
- ESP8266 ESP8089 ESP8285 用户手册文档汇总
- 如何测试硬盘软件,win10系统怎么用硬盘检测工具HDTune【图文】
- 解决linux(centos7)重新安装mysql systemctl start mysqld.service时报错
- poi创建数据透视表_从数据透视表创建自定义报告
- 服务器响应401,服务器返回的HTTP响应代码:401为URL:https
- gavin中文是什么意思_Gavin[加文,盖温]英文名的中文翻译意思、发音、来源及流行趋势-千代英文名...
- SX1308原厂芯片
- 【TAGE】分支预测
- Codeforces 1089K King Kog's Reception(线段树)