`
zengshaotao
  • 浏览: 792323 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

接上篇集合操作

    博客分类:
  • java
 
阅读更多

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;


public class DealCVSFile {

 public static void main(String args[]){
  
  String fileLocation = "D:/testCSV.csv";
  try {
   BufferedReader bf = new BufferedReader(
     new InputStreamReader(new FileInputStream(fileLocation)));
   
   String rowStr = "";
   
   String rowStrSplit[] = null;
   
   Map pMap = new HashMap();
   String removeQue = "";
   while((rowStr = bf.readLine())!=null){
    //文件读取时包括了前后的字符串,类似于: "zhangsan,88888"
    removeQue = rowStr.substring(1,rowStr.length()-2);
    //rowStrSplit = rowStr.split(",");
    pMap.put(removeQue, removeQue);//
   }
   
   String inputName="zhaoliu";
   
   List<String>numberList = getNamesByNumber(inputName,pMap,1);
   
   
   List maxCont = new ArrayList();
   //maxCont.add(0, "");不知道为什么,多次调用这样的方法时,元素不断增加,而不是覆盖
   String temp="";
   int max = 1;
   
   for(Iterator itNum = numberList.iterator();itNum.hasNext();){
    temp = (String) itNum.next();
    List<String> innerNum = getNamesByNumber(temp,pMap,0);
    int size = innerNum.size();
    if(size>=max){
     maxCont.clear();//因为add(index,element)方法不符合预期,所以这里每次保存最新的
     maxCont.add(temp);
     maxCont.add(innerNum);
     max = size;
    }
   }
   
   System.out.print(maxCont);
   
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }finally{
   
  }
 }
 
 /**
  * flag=0表示通过number找name,flag=1表示通过name找number
  * @param param
  * @param m
  * @param flag
  * @return
  */
 public static List getNamesByNumber(String param,Map m,int flag){
  List<String> l = new ArrayList<String>();
  for(Iterator it = m.entrySet().iterator();it.hasNext();){
   Map.Entry<String, String> et = (Entry<String, String>) it.next();
   if(0==flag){
    if(param.equals(et.getValue().split(",")[1])){
     l.add(et.getKey().split(",")[0]);
    }
   }else if(1==flag){
    if(param.equals(et.getKey().split(",")[0])){
     l.add(et.getKey().split(",")[1]);
    }
   }
   
  }
  return l;
 }
 
}

 

分享到:
评论

相关推荐

    JAVA 集合操作

    这篇博文将深入探讨Java集合框架,包括其基本概念、常见类、接口和实现方式,以及如何进行有效的集合操作。以下是对这些知识点的详细说明: 1. **集合框架**: Java集合框架是一组接口和类,它们提供了在程序中...

    整数集合类的各种操作

    首先,让我们了解一下基本的集合操作: 1. **添加元素**:使用`add()`方法向集合中添加一个整数。如果该元素已经存在,`add()`方法通常不会做任何操作。 ```java Set&lt;Integer&gt; set = new HashSet(); set.add(1); ...

    集合操作

    在阅读《有关集合的操作》这篇博文时,你可能会找到更多关于特定编程语言中集合操作的实用技巧和示例。作者通过源码分析和工具使用,深入讲解了集合操作的实现细节,对于提升编程技能非常有帮助。记住,不断学习和...

    集合框架学习笔记

    这篇学习笔记将深入探讨Java集合框架的基础概念、主要类库以及常见应用场景。 首先,Java集合框架分为两种基本类型:List(列表)和Set(集)。List接口代表有序的集合,允许重复元素,如ArrayList和LinkedList;而...

    【Python入门教程】第48篇集合的对称差集.pdf

    集合的对称差集是集合操作中的一种,用于找出两个或多个集合中独有的元素。Python提供了`symmetric_difference()`方法和`^`操作符两种方式来实现这一功能。在处理多个集合时,可以链式使用这些操作来得到最终的对称...

    Java集合排序及java集合类详解

    在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...

    java集合框架全面进阶

    此外,Stream API的引入为集合操作提供了更简洁的函数式编程方式。 7. **并发处理**:在多线程环境中,Concurrent包提供了线程安全的集合实现,如ConcurrentHashMap、CopyOnWriteArrayList和CopyOnWriteArraySet。...

    数据结构课程设计----集合的并、交和差运算

    这篇文档是关于一个数据结构课程设计项目,目标是创建一个程序来演示集合的并、交和差运算。项目的关键在于理解和实现集合的概念以及相关的运算,同时利用数据结构,特别是有序链表来存储和操作集合。 首先,集合的...

    Java集合概述与实例分析

    - LinkedHashSet:在HashSet的基础上增加了保持插入顺序的功能,使得遍历集合时元素按照添加的顺序出现。 - TreeSet:基于红黑树(Red-Black Tree)实现,元素按自然排序或自定义比较器进行排序。插入、删除和...

    集合 和 哈希表的实例

    在Python中,集合由大括号{}或set()函数创建,支持常见的集合操作,如并集、交集和差集。集合的特点包括: 1. **唯一性**:集合中的每个元素都是唯一的,不允许重复。 2. **无序性**:集合中的元素没有特定的顺序。...

    Java 集合类 简单Demo

    这篇博客文章可能详细解释了如何创建、操作和理解Java集合类的基本概念。 首先,Java集合框架主要包括接口和实现这些接口的类。接口如`List`, `Set`, `Queue`, `Map`等,定义了集合的行为和操作。而`ArrayList`, `...

    Java集合框架学习笔记

    本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java 5引入的泛型特性。 首先,让我们了解一下`java.lang.Class`。`Class`类在Java中扮演着特殊的角色,它不仅是一个普通类,而且是用于获取...

    Java集合详解

    `Collection`接口提供了基本的集合操作,如添加(add)、删除(remove)、判断是否包含(contains)等方法。此外,`addAll`和`removeAll`等方法允许进行集合间操作。 #### 迭代器 迭代器(Iterator)是用于遍历...

    c#集合ppt

    5. **List**:List是泛型集合,基于动态数组实现,支持快速的索引访问和基本的集合操作,如添加、删除、排序等。 6. **Stack与Queue**:Stack是后进先出(LIFO)的数据结构,常用于实现函数调用栈或临时存储操作。...

    集合底层原理总结

    本篇文章将总结集合框架的基础知识,包括主要接口、实现类以及底层实现原理。 1. 集合框架接口 - **Collection接口**:作为所有集合类的父接口,提供了基本的操作方法,如add、remove等。 - **List接口**:继承自...

    集合与简单逻辑

    在IT领域,集合论是数学基础的重要组成部分,它为我们提供了描述和操作数学对象的基本框架。简单逻辑,也称为命题逻辑,是形式逻辑的一个分支,用于分析和表达逻辑关系。本篇将围绕“集合与简单逻辑”这一主题,深入...

    Java企业系列面试题(集合篇).docx

    Java集合框架是Java编程语言中一个极其重要的概念,它提供了一组高效的数据结构和算法,用于存储和操作对象。集合框架的基本接口构成了整个框架的基础,它们定义了各种集合类型的行为和操作。 1. **集合Collection*...

    最小集合覆盖

    本篇文章提供了一种基于精确算法的方法来解决最小集合覆盖问题,并通过MPI(Message Passing Interface,消息传递接口)实现了算法的并行化处理,极大地提高了计算效率。 具体的精确算法实现过程可以分为以下几个...

    java集合框架详解以及区别

    在本篇文章中,我们将深入探讨Java集合框架中的主要接口和类,以及它们之间的区别。 首先,Java集合框架的核心接口包括`Collection`、`List`、`Set`和`Map`。`Collection`是最基本的接口,它是所有单值容器的父接口...

Global site tag (gtag.js) - Google Analytics