`

java集合框架总结

阅读更多
[size=small][/size]
   java中的集合框架都是线性的数据结构,它相当于一种容器,可以存储数据。集合框架总共可以分为四类:List,Map,Set以及Queue,其中前三种较为常用。
   1、Set:Set是一个接口,它的实现类有java.util.HashSet以及java.util.TreeSet,Set的特点是无序存储,所以如果要打印出Set中的所有元素就必须要定义一个迭代器Iterator来进行遍历并且输出。用Set实现数据的删除重复元素并且排序如下:
public class SetTest {

public static void main(String [] args){
set = createSet(10);
printSet(set);
java.util.List<Integer> list = sort(set);
System.out.println("排序后的set为:=============================》");
printList(list);
}

//创建一个大小为count的Set
public static java.util.Set<Integer> createSet(int count){
java.util.Set<Integer> set = new java.util.HashSet<Integer>();
java.util.Random random = new java.util.Random();
for(int i=1;i<=count;i++){
int value = random.nextInt(20);
//System.out.println("I am random:"+value);
set.add(value);
//System.out.println("I m i:"+i);
//printSet(set);
//System.out.println("==========================================>");
}
return set;
}

//打印整个Set
public static void printSet(java.util.Set<Integer> set){
//迭代器
java.util.Iterator<Integer> it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}

public static void printList(java.util.List<Integer> list){
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}

//排序:由小到大,将Set中取出的最小值,次小值等依次放入一个list
public static java.util.List<Integer> sort(java.util.Set<Integer> set){
java.util.List<Integer> list = new java.util.ArrayList<Integer>();
int m=0;
//java.util.Set<Integer> newset = createSet(12);
for(int i=0;i<set.size()+m;i++){
java.util.Iterator<Integer> it = set.iterator();
    int min = it.next();
    System.out.println("I am the schedule min:"+min);
    while(it.hasNext()){
    int value = it.next();
    if(min > value){
    min = value;
    System.out.println("I am min:"+min);
    }
    }
    list.add(min);
    set.remove(min);
    m++;
    System.out.println("this set has removed min:=================");
    printSet(set);
    }
return list;
}

private static java.util.Set<Integer> set = new java.util.HashSet<Integer>();

}
   2、List:实现了依据某种特定顺序进行有序存储,List接口的常用实现类是java.util.Vector以及java.util.ArrayList。基本操作代码为:
public class ListTest {

public static void main(String [] args){
java.util.List<String> list = creatList();
printList(list);
System.out.println("删除重复元素后List为:==========================>");
dlRepeat(list);
printList(list);
System.out.println("此时长度变为"+list.size());
printList(sort(list));
}

//创建一个新的list
public static java.util.List<String> creatList(){
java.util.List<String> list = new java.util.ArrayList<String>();
//for(int i=0;i<5;i++){
//int m = i+10;
//list.add(m+" ");
//}
//随机赋值
java.util.Random random = new java.util.Random();
for(int i=0;i<15;i++){
int value = random.nextInt(10);
list.add(value+"");
}
return list;
}

//打印整个list
public static void printList(java.util.List<String> list){
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}

//删除重复的元素
public static void dlRepeat(java.util.List<String> list){
for(int i=0;i<list.size();i++){
if(list.get(i) == null){

}else{
for(int j=i+1;j<list.size();j++){
//System.out.println("i is: "+list.get(i));
//System.out.println("j is: "+list.get(j));
String value = list.get(i);
if(value.equals(list.get(j))){
System.out.println("i appear is: "+list.get(i)
+" j remove is: "+list.get(j));
list.remove(j);
}
//System.out.println("I am the :"+j);
}
}
}
}

//排序
public static java.util.List<String> sort(java.util.List<String> list){
//java.util.List<Integer > newlist = new java.util.ArrayList<Integer>();
//System.out.println(max.charAt(0));
//System.out.println(list.get(1).charAt(0));
for(int i=0;i < list.size() ; i++){
   int min = i;
   for(int j=i+1;j<list.size();j++){
   if(list.get(min).charAt(0) > list.get(j).charAt(0))
   min = j;
   }
   String temp = list.get(min);
   String temp1 = list.get(i);
   list.set(min, temp1);
   list.set(i, temp);
}
return list;
}
}
   3、Map:Map实现了一种一对一的存储关系,也叫做映射,分为键值和值两个部分,其中键值不能重复,如果一个map中已经存在某一键值的对应值,如(5,11)再添加时,map.add(5.21),21会覆盖之前的值,但是map中允许值的重复出现。
基本操作代码如下:
public class MapTest {

public static void main(String [] args){
java.util.Map<Integer, Integer> map = createMap(10);
printMap(map);
dlRepeat(map);
System.out.println("the map has deleted:========================");
printMap(map);
java.util.Map<Integer, Integer> newmap = sort(map);
System.out.println("the map has sorted:=========================");
printMap(newmap);
}

//创建一个Map,并进行随机赋值
public static java.util.Map<Integer, Integer> createMap(int count){
java.util.Map<Integer, Integer> map = new java.util.HashMap<Integer, Integer>();
java.util.Random random = new java.util.Random();
for(int i=0;i<count;i++){
int value = random.nextInt(10);
map.put(i, value);
}
return map;
}

//打印Map(需要用到map.KeySet将map中的key作为一个Set存储,进行遍历)
public static void printMap(java.util.Map<Integer, Integer> map){
java.util.Set<Integer> set = map.keySet();
java.util.Iterator<Integer> it = set.iterator();
while(it.hasNext()){
int value = it.next();
System.out.println("key is:"+value+"   and the value is:"+map.get(value));
}
}



//删除赋初始值时的重复元素
public static java.util.Map<Integer,Integer> dlRepeat(java.util.Map<Integer, Integer> map){
int m = 0;
for(int i=0;i<map.size()+m;i++){
if(map.get(i) == null){

}else{
System.out.println("i is:"+map.get(i));
for(int j=i+1;j<map.size()+m;j++){
System.out.println("j is:"+map.get(j));
if(map.get(i).equals(map.get(j))){
System.out.println("they are same,delete!");
map.remove(j);
m++;
}
}
  }
}
return map;
}

//对已删除重复元素的Map进行排序
public static java.util.Map<Integer, Integer> sort(java.util.Map<Integer, Integer> map){
java.util.Set<Integer> set = map.keySet();
java.util.Map<Integer, Integer> newmap = createMap(0);
int m = 0,n=0;
for(int i=0;i<set.size()+m;i++){
java.util.Iterator<Integer> it = set.iterator();
    int min = it.next();
    System.out.println("I am the schedule min:"+min);
    while(it.hasNext()){
    int value = it.next();
    if(map.get(min) > map.get(value)){
    min = value;
    System.out.println("I am min:"+min);
    }
    }
    newmap.put(n, map.get(min));
    n++;
    set.remove(min);
    m++;
    }
return newmap;
}

}
分享到:
评论

相关推荐

    Java集合框架总结

    ### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...

    JAVA集合框架学习总结

    本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!

    Java集合框架使用总结

    ### Java集合框架使用总结 #### 前言 本文旨在为读者提供关于Java集合框架的概览性介绍,帮助理解其整体架构与设计理念。对于希望深入掌握特定接口或类使用方法的学习者,建议查阅官方提供的Java API文档。 #### ...

    Java集合框架详解

    总结来说,Java集合框架为开发者提供了丰富的数据结构选择,能够适应各种场景下的数据处理需求。理解并熟练使用这些接口和类,对于提高代码的效率和可维护性至关重要。在实际开发中,根据具体需求选择合适的容器类型...

    Java集合框架常见面试题.pdf

    根据提供的文档内容,文件是关于Java集合框架的面试题知识点总结。以下是Java集合框架的知识点详述: Java集合框架主要包括Collection接口和Map接口两大分支。Collection接口主要包括List、Set以及Queue三个子接口...

    JAVA集合框架学习思考+总结

    JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类

    数据结构和Java集合框架

    总结来说,理解数据结构和掌握Java集合框架是每个Java开发者必备的技能。它们不仅影响代码的可读性和可维护性,也直接影响到程序的执行效率。熟悉这些概念并能灵活运用,将使你在编程实践中更加游刃有余。通过阅读如...

    Java集合框架常见面试题夜间阅读版.pdf

    根据提供的信息,我们可以总结并详细解释关于Java集合框架的一些关键知识点。这些知识点主要涉及Java集合框架中的各种数据结构,如List、Set、Map等,并深入探讨了它们在实际应用中的特性与用途。 ### Java集合框架...

    Java集合框架使用总结.pdf

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组高效的数据结构和算法,使得开发者可以方便地管理和操作数据。本文主要围绕Java集合框架的核心概念、接口和类进行阐述。 首先,集合框架是Java中用于...

    corejava集合框架学习总结.pdf

    ### 核心Java集合框架学习总结 #### 一、概述 在Java编程语言中,集合框架是一组用于存储和操作对象的接口和类。这些接口和类提供了多种数据组织方式,如列表、集合并和映射等。本篇文章将重点介绍集合框架中的几...

    Java集合框架面试题

    "Java集合框架面试题" Java 集合框架是 Java 语言中的一组预定义类和接口的集合,用于存储和操作数据。下面是 Java 集合框架的知识点总结: 1. Java 集合类主要有两大分支:Collection 接口和 Map 接口。...

    第03章.java集合框架.ppt

    Java 集合框架知识点总览 Java 集合框架是 Java 语言中提供的一种处理集合的机制,它提供了一种灵活、可靠、可扩展的方式来存储和操作对象的集合。在本章节中,我们将详细介绍 Java 集合框架的主要组成部分、使用...

    java集合框架详解以及区别

    总结来说,Java集合框架提供了丰富的数据结构选择,根据实际需求,如是否需要排序、是否关心元素顺序、是否需要线程安全、性能要求等,可以选择最合适的实现。理解这些接口和类的区别,能够帮助开发者编写更高效、更...

    集合框架总结图

    通过深入学习和理解这个集合框架总结图,开发者能够更好地掌握Java集合框架的核心原理,提高代码质量和效率,解决各种数据管理问题。无论是在面试准备还是实际项目开发中,这都是一份不可或缺的参考资料。

    Java集合框架的知识总结.doc

    本篇文章将对Java集合框架进行深入的总结,包括其核心接口、类以及常用方法。 1. **集合框架概述** Java集合框架的核心接口主要有两个:`Collection`和`Map`。`Collection`接口是所有单值容器的基接口,如`List`、...

Global site tag (gtag.js) - Google Analytics