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

由于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. 让你高效的理解JavaScript中的同步、异步和事件循环

    "同步请求","异步请求"相信这两词在程序猿的世界中频频出现,到底是词性的妖娆,还是撸代码的基础要求,下面直接分享本人学习的好东西,保证让你深入浅出,爽得不要不 ...

  2. Linux下查看Go语言软件运行情况

    在Linux下,使用"jps"可以查看用Java语言写的软件的运行情况,如果要查看GO语言写的软件的运行情况,可以使用"gops",但这不是系统自带的,需要进行 ...

  3. bzoj 3139: [Hnoi2013]比赛

    Description 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. (2) 若平局,两支球队各得 ...

  4. Redis分布式集群搭建

    Redis集群架构图 上图蓝色为redis集群的节点. 节点之间通过ping命令来测试连接是否正常,节点之间没有主区分,连接到任何一个节点进行操作时,都可能会转发到其他节点. 1.Redis的容错机制 ...

  5. Expression Blend4安装破解

    先在官网上下载Expression Blend4试用版 首先进入微软下载中心,http://www.microsoft.com/zh-cn/download/default.aspx: 搜索Expre ...

  6. java 多线程,T1 T2 T3 顺序执行

    一.程序设计 1.抽象公共类PublicThread,具有先前线程属性previousThread.父类为Thread 2.在PublicThread的run()方法中判断previousThread ...

  7. Spring 自动装配及自动注册的相关配置

    Spring支持好几种自动装配(Autowiring)的方式,以及自动扫描并注册Bean的配置(在beans.xml中配置). 下文我们进行一个小结. 1. <context: annotati ...

  8. Generation Axe 吉他之夜音乐会-广州站 感受

    本人第一次看音乐会,演唱会跟音乐会是有区别的哈,演唱会以表演.舞蹈.歌唱为主,还有很多特别嘉宾 演出时间: 从20点开始一直到23点多才结束,有五个吉他手,开场跟结束五个吉他手一齐演出.平均每个人表演 ...

  9. Xamarin.Android 怎么定义一个按钮和返回键功能一样回到上一个界面

    https://zhidao.baidu.com/question/570934367.html页面之间的跳转有startActivity 和startActivityForResult两种,star ...

  10. 数据库和 MySQL 简介(真的只是简介)

    数据库 si 什么? google.com baidu.com 数据库服务器,数据管理系统,数据库,表与记录的关系