一、首先看一下集合的框架图:

由于collection也继承了Iterator和comparable接口,因此我们可以使用Iterator来遍历元素,也可以通过自定义compareTo函数来重新编写自己的排序。

二、代码

1、List

package testCollection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; public class testList {
public static void main(String[] args){
List list = new ArrayList();
list.add("test1");
list.add("test2");
list.add("test3"); System.out.println("out by for!");
for(Object o : list){
System.out.println(o);
} System.out.println("out by iterator!");
Iterator iterator = list.iterator();
while(iterator.hasNext()){
String element = (String)iterator.next();
System.out.println(element);
}
}
}

运行结果:

out by for!
test1
test2
test3
out by iterator!
test1
test2
test3

2、Set,如果遇到重复的元素,不会添加

package testCollection;

import java.util.HashSet;
import java.util.Set; public class testSet {
public static void main(String[] args){
Set set = new HashSet();//使用set一般都是用hashset,这个会快一些
set.add("test1");
set.add("test2");
if(set.add("test2")){
System.out.println("add successful");
}else{
System.out.println("add failed");
}
}
}

运行结果:

add failed

3、Map

package testCollection;

import java.util.HashMap;
import java.util.Map;
import java.util.Set; public class testMap {
public static void main(String[] args){
Map map = new HashMap(); map.put(, "test1");
map.put(, "test2"); System.out.println("size "+map.size());
System.out.println(map.get()); Set keys = map.keySet();
for(Object key : keys){
System.out.println(key);
} map.remove();
System.out.println("size "+map.size());
}
}

运行结果:

size
test1 size

4、自定义排序函数
person类,继承Comparable接口,重载compareTo函数

package testCollection;

public class Person implements Comparable{
private String name;
private int age;
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(String name,int age){
this.name = name;
this.age = age;
}
@Override
public int compareTo(Object person) throws ClassCastException {
if(!(person instanceof Person)){
throw new ClassCastException("A Person perspected!");
}
int age = ((Person)person).getAge();
return this.age-age;
}
}

测试类

package testCollection;

import java.util.Arrays;

public class testComparable {
public static void main(String[] args){
Person[] persons = new Person[];
persons[] = new Person("test1",);
persons[] = new Person("test2",);
persons[] = new Person("test3",);
persons[] = new Person("test4",); System.out.println("before sorting!"); for(Person p : persons){
System.out.println("name: "+p.getName()+" age: "+p.getAge());
} System.out.println("after sorting!");
Arrays.sort(persons);
for(Person p : persons){
System.out.println("name: "+p.getName()+" age: "+p.getAge());
}
}
}

运行结果:

before sorting!
name: test1 age:
name: test2 age:
name: test3 age:
name: test4 age:
after sorting!
name: test3 age:
name: test1 age:
name: test4 age:
name: test2 age:

【java开发系列】—— 集合使用方法的更多相关文章

  1. 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)

    编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...

  2. 【java开发系列】—— 自定义注解

    之前在开发中,就总纳闷,为什么继承接口时,会出现@Override注解,有时候还会提示写注解@SuppressWarnings? 原来这是java特有的特性,注解! 那么什么是注解呢? 注解就是某种注 ...

  3. 【java开发系列】—— JDK安装

    前言 作为一个java开发者,安装JDK是不可避免的,但是配置路径却总是记不住,百度也有很多参考例子.这里仅仅当做以后参考的笔记记录. 说到JDK,就不得不提JRE.他们到底是什么呢? 通常我们进行j ...

  4. Java开发系列-文件上传

    概述 Java开发中文件上传的方式有很多,常见的有servlet3.0.common-fileUpload.框架.不管哪种方式,对于文件上传的本质是不变的. 文件上传的准备 文件上传需要客户端跟服务都 ...

  5. 在idea的java开发中字符串length()方法获取长度与赋值不符的问题

    最近在开发中用到length()方法获取中文字符串的长度,发现获得的长度与实际不符.比如个String类型赋值为"中",但获取长度却是2. 这让我百思不得其解,后来突然想起来我在研 ...

  6. java基础系列--集合类库(一)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7229478.html 1.概述 Java的集合类库很是丰富,囊括了大部分的常见数据结构形式 ...

  7. Java开发系列-JDBC

    概述 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和 ...

  8. 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)

    建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它 ...

  9. Java基础系列--集合之ArrayList

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8494618.html 一.概述 ArrayList是Java集合体系中最常使用,也是最简单 ...

随机推荐

  1. Python 3.6.3 利用 Dlib 19.7 和 opencv 实现人脸68点定位 进行人脸识别

    0.引言 介绍利用Dlib官方给的人脸识别预测器"shape_predictor_68_face_landmarks.dat"进行68点标定,利用OpenCv进行图像化处理,在人脸 ...

  2. LeetCode #1 TwoSum

    Description Given an array of integers, return indices of the two numbers such that they add up to a ...

  3. iOS自定义文字高度添加行间距

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } span.s1 { } span.s2 { c ...

  4. 简单介绍什么是协程及其在ES6中的实现方式

    协程,英文名coroutine,是一种执行过程可以被暂停和恢复的方法.各个协程之间相互协作完成一个任务. 让我们来看一个关于发挥协程作用的例子.假定我们有一个生产者和消费者的关系,生产者创建物品并将物 ...

  5. BZOJ2001 HNOI2010 城市建设

    题目大意:动态最小生成树,可以离线,每次修改后回答,点数20000,边和修改都是50000. 顾昱洲是真的神:顾昱洲_浅谈一类分治算法 链接: https://pan.baidu.com/s/1c2l ...

  6. 分享一个Maven的架构,以及在Maven配置中的注意事项

    Maven作为一个十分流行的项目管理工具,在我们的项目变得逐渐复杂的时候,可以有效的降低项目管理难度. 聚合工程就是当项目到达一定规模时,十分有效的管理子项目和模块的方法. 首先介绍一下,在大型项目中 ...

  7. DOM&JavaScript示例&练习

    以下示例均为html文件,保存至本地就可直接用浏览器打开以查看效果\(^o^)/~ 练习一:设置新闻字体 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  8. MYSQL忘记root密码后如何修改

    方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:my ...

  9. javamelody 使用

    javamelody 扩展API如何获取监控参数 https://github.com/javamelody/javamelody/wiki/ExternalAPI#json

  10. C# 真正能发邮件的源码

    在网上找了很多例子都试邮件发送都失败,今天无意有试了一下居然行了 public static void ErrorMessageMail(string _subject, string _body)  ...