[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 API文档。 #### ...
总结来说,Java集合框架为开发者提供了丰富的数据结构选择,能够适应各种场景下的数据处理需求。理解并熟练使用这些接口和类,对于提高代码的效率和可维护性至关重要。在实际开发中,根据具体需求选择合适的容器类型...
根据提供的文档内容,文件是关于Java集合框架的面试题知识点总结。以下是Java集合框架的知识点详述: Java集合框架主要包括Collection接口和Map接口两大分支。Collection接口主要包括List、Set以及Queue三个子接口...
JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类
总结来说,理解数据结构和掌握Java集合框架是每个Java开发者必备的技能。它们不仅影响代码的可读性和可维护性,也直接影响到程序的执行效率。熟悉这些概念并能灵活运用,将使你在编程实践中更加游刃有余。通过阅读如...
根据提供的信息,我们可以总结并详细解释关于Java集合框架的一些关键知识点。这些知识点主要涉及Java集合框架中的各种数据结构,如List、Set、Map等,并深入探讨了它们在实际应用中的特性与用途。 ### Java集合框架...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组高效的数据结构和算法,使得开发者可以方便地管理和操作数据。本文主要围绕Java集合框架的核心概念、接口和类进行阐述。 首先,集合框架是Java中用于...
### 核心Java集合框架学习总结 #### 一、概述 在Java编程语言中,集合框架是一组用于存储和操作对象的接口和类。这些接口和类提供了多种数据组织方式,如列表、集合并和映射等。本篇文章将重点介绍集合框架中的几...
"Java集合框架面试题" Java 集合框架是 Java 语言中的一组预定义类和接口的集合,用于存储和操作数据。下面是 Java 集合框架的知识点总结: 1. Java 集合类主要有两大分支:Collection 接口和 Map 接口。...
Java 集合框架知识点总览 Java 集合框架是 Java 语言中提供的一种处理集合的机制,它提供了一种灵活、可靠、可扩展的方式来存储和操作对象的集合。在本章节中,我们将详细介绍 Java 集合框架的主要组成部分、使用...
总结来说,Java集合框架提供了丰富的数据结构选择,根据实际需求,如是否需要排序、是否关心元素顺序、是否需要线程安全、性能要求等,可以选择最合适的实现。理解这些接口和类的区别,能够帮助开发者编写更高效、更...
通过深入学习和理解这个集合框架总结图,开发者能够更好地掌握Java集合框架的核心原理,提高代码质量和效率,解决各种数据管理问题。无论是在面试准备还是实际项目开发中,这都是一份不可或缺的参考资料。
本篇文章将对Java集合框架进行深入的总结,包括其核心接口、类以及常用方法。 1. **集合框架概述** Java集合框架的核心接口主要有两个:`Collection`和`Map`。`Collection`接口是所有单值容器的基接口,如`List`、...