Java 集合的基本用法
package jaxpsax; import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet; import org.junit.Test; public class Testf {
@Test
public void testSet() {
// 创建集合
Set set = new HashSet<>();
//添加不同的对象
set.add(23);
set.add(23);
set.add(new String("cc"));
set.add(new String("cc"));
set.add("cc");
set.add(new Person("lf", 20));
set.add(new Person("lf", 20));
//遍历
for (Object object : set) {
System.out.println(object);
}
//删除对象
set.remove(23);
//使用迭代器遍历
Iterator it = set.iterator();
while (it.hasNext()) {
Object object = (Object) it.next();
System.out.println(object);
} } @Test
public void testCompare() { /*// 指定排序方法
Set<Person> set = new TreeSet<>(new Comparator<Object>() { @Override
public int compare(Object o1, Object o2) {
if (o1 instanceof Person && o2 instanceof Person) {
Person p1 =(Person)o1;
Person p2 =(Person)o2;
return (p1.getName().hashCode()-p2.getName().hashCode()*(p1.getAge()-p2.getAge()));
}
return 0;
}
});*/
//创建TreeSet 注意:如果Person类没有实现compareTo会出现类冲突异常
Set<Person> set = new TreeSet<Person>();
// 添加数据
set.add(new Person("lt", 1));
set.add(new Person("lt", 65));
set.add(new Person("lh", 65));
set.add(new Person("ff", 3));
System.out.println(set); } }
package jaxpsax; public class Person implements Comparable{
//属性
private String name;
private int age;
// set和get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// 无参构造方法
public Person() {
this(null, 0);
}
// 有参构造方法
public Person(String name,int age) {
// this.name = name;
// this.age = age;
setName(name);
setAge(age);
} // 私有的方法
public void learnSomething() {
System.out.println("每个人都具有学习能力");
} // 重写toString方法
@Override
public String toString() {
return "name:"+name+" "+"age:"+age;
} // 重写equals方法
@Override
public boolean equals(Object obj) {
// 判断是否为空
if (obj == null){
return false;
}
// 判断是否是同一对象应用
if (this == obj){
return true;
}
// 判断是否是该类的一个实例
if (!(obj instanceof Person)) {
return false;
}
Person p = (Person)obj;
//比较内容是否相等
return p.name.equals(name)&&p.age==age;
}
// 重写hashCode方法(注意hashCode和equals方法中所用的属性必须一致)
@Override
public int hashCode() {
return name.hashCode()-age;
} //实现compareTo方法
@Override
public int compareTo(Object o) { return name.hashCode()-age;
} }
Java 集合的基本用法的更多相关文章
- java集合的简单用法
typora-root-url: iamge [TOC] 1.集合接口 1.1将集合的接口与实现分离 与现代的数据结构类库的常见情况一样,Java集合类库也将接口(interface)与实现(im ...
- java集合 stream 相关用法(1)
java8新增一种流式数据,让操作集合数据更简单方便. 定义基本对象: public class Peo { private String name; private String id; publi ...
- 【新手向】如何学习Java集合
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 如果认识我的同学可能就知道,我已经写过很多系列级 ...
- Java集合中Set的常见问题及用法
在这里演示的案例是衔接Java集合中的List(点击查看)那篇博文的,本节我们学习的Set的用法. Set是Collection的一个重要的子接口,Set中的元素是无序排列的,并且元素不可以重复,被称 ...
- Java集合框架(一)—— Collection、Iterator和Foreach的用法
1.Java集合概述 在编程中,常常需要集中存放多个数据.当然我们可以使用数组来保存多个对象.但数组长度不可变化,一旦在初始化时指定了数组长度,则这个数组长度是不可变的,如果需要保存个数变化的数据,数 ...
- Java集合中迭代器的常用用法
该例子展示了一个Java集合中迭代器的常用用法public class LinkedListTest { public static void main(String[] args) { List&l ...
- Java 集合框架之set用法
Java 集合框架之set 一个简单的例子 创建一个Customer类,类中的属性有姓名(name).年龄(age).性别(gender),每个属性分别有get/set 方法.然后创建两个Custom ...
- java集合-遍历arraylist-for循环-从指定下标开始遍历-for的用法
转载:http://www.9191boke.com/blogdetails/681220549.html java集合的for循环遍历有多种方式,但是都是从下标0开始遍历,有时会有从中间下标开始遍历 ...
- Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结
2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...
随机推荐
- ACM zb的生日
zb的生日 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 今天是阴历七月初五,acm队员zb的生日.zb正在和C小加.never在武汉集训.他想给这两位兄弟买点什么 ...
- 洛谷 P1144 最短路计数 Label:水
题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶点数与边数. 接下来M行 ...
- [知识点]C++中的运算符
1.前言 之前最开始学习语法和基础知识的时候,基本上最简单的运算符有所接触,当时对于位运算这种东西完全没有概念.今天对C++中出现的部分运算符尤其是位运算符进行一些总结. 2.+ - * / % 这些 ...
- 关于scrollbar-face-color只支持ie的解决办法!
关于scrollbar-face-color只支持ie的解决方法!!今天突然有人问我滚动条css自定义的方法,我发现用scrollbar-base-color这种方法只有ie支持,查了半天资料总结如下 ...
- 神奇的莫比乌斯带(mobius)
1.禅师和青年之间的对话 2.制作一个莫比乌斯带 3.神奇的莫比乌斯带 4.对莫比乌斯带进行简单的数学建模 1.禅师和青年之间的对话 青年问禅师:“大师,我很爱我的女朋友,她也有很多优点,但是总有几个 ...
- BZOJ4532: [BeiJing2014 WinterCamp] 珠链
Description Alex喜欢玩网络游戏,认为这是智力和体力的综合锻炼.在一次游戏活动中,他意外获得了一个传说中威力极其强大的法宝:珠链. 珠链,顾名思义,就是由许多小珠子串起来的一条链.珠子 ...
- ffmpeg解码
解码流程 http://www.cnblogs.com/lidabo/p/4582391.html 例子 http://www.cnblogs.com/lidabo/p/4582393.html
- [译]FastClick: native-like tapping for touch apps
原文地址:http://labs.ft.com/2011/08/fastclick-native-like-tapping-for-touch-apps/ 这篇文章是一篇老文了,现在才看到,真是落后啊 ...
- [Android] adb.exe换了位置
好久没有做android开发了,今天重新下载了新的sdk,发现adb.exe从sdk/tools里面消失了,添加了系统环境变量的路径就还是没法调动adb.exe命令,网上搜了一下原理是存在了新版的sd ...
- android中versionCode&versionName
原文来自:http://blog.csdn.net/wh_19910525/article/details/8660416 ,略有修改 一.概述 Android的版本可以在androidmainfes ...