精华内容
下载资源
问答
  • 最近在做文本分析相关的实验,统计词频,情感度量许多数据预处理的工作要用到集合类的遍历,借这个机会也好好复习了一下Java中Map,List的用法。1. Map的遍历Map这种集合不能直接取出元素,必须要转换成Set,然后...

    最近在做文本分析相关的实验,统计词频,情感度量许多数据预处理的工作要用到集合类的遍历,借这个机会也好好复习了一下Java中Map,List的用法。

    1. Map的遍历

    Map这种集合不能直接取出元素,必须要转换成Set,然后使用Iterator迭代取每一个键值对。以下方法均适用于Map的实现类HashMapHashMap,LinkedHashMap,TreeMap等

    方法一:使用EntrySet(我比较常用),可以同时取出key和value

    Map testMap = new HashMap();

    Iterator> it = testMap.entrySet().iterator();

    Entry entry = null;

    while(it.hasNext()){

    entry = it.next();

    System.out.println(entry.getKey() + "\t" + entry.getValue());

    }

    或者使用for循环,就不需要用到Iterator

    for(Map.Entry entry: testMap.entrySet()){

    System.out.println(entry.getKey() + "\t" + entry.getValue());

    }

    方法二:使用KeySet,遍历key,然后通过map.get(key)获得对应的value

    Map testMap = new HashMap();

    String key = null;

    Iterator it = testMap.keySet().iterator();

    while(it.hasNext()){

    key = it.next();

    //System.out.println(it.next() + "\t" + testMap.get(it.next()));

    System.out.println(key + "\t" + testMap.get(key));

    }

    或者使用for循环

    String value = null;

    for(String key : testMap.keySet()){

    value = testMap.get(key);

    System.out.println(key + "\t" + value);

    }

    方法三:如果只需要value,可以:

    1. 使用EntrySet遍历value,同上面的方法一

    2. 通过keySet遍历key,然后通过map.get(key)得到value,同上面的方法二

    3. 通过values直接遍历value

    Map testMap = new HashMap();

    Iterator it = testMap.values().iterator();

    while(it.hasNext()){

    System.out.println(it.next());

    }

    或者for循环:

    for(String value : testMap.values()){

    System.out.println(value);

    }

    遍历Map总结:

    1. 如果只需要遍历key,无疑keySet最好,因为EntrySet一次性把key,value都取出来,性能上肯定开销大于只取出key。

    2. 如果只想要value,遍历map.values()是最佳的选择,其他EntrySet和KeySet都要绕弯路。

    3. 如果要同时取key 和value,这时EntrySet和KeySet则难分绝对优劣。我们知道HashMap是一种数组和链表结合的数据结构。在取value时,首先计算key的hashcode,然后找到数组中对应位置的某一元素,再通过key的equals方法在对应位置的链表中找到需要的元素。虽然EntrySet一次性取出key和value性能开销比只取key大,但是如果这个损失比HashMap查找value的开销小,那么EntrySet更优,否则使用KeySet,通过map.get(key)获取value。

    2. List的遍历

    方法一:使用普通的for循环

    List list = new ArrayList();

    for(int i = 0; i < list.size(); i++){

    System.out.println(list.get(i));

    }

    方法二:使用迭代器Iterator

    Iterator it = list.iterator();

    while(it.hasNext()){

    System.out.println(it.next());

    }

    方法三:使用迭代器for-each

    for(String str : list){

    System.out.println(str);

    }

    遍历ArrayList总结:

    1. ArrayList的底层保存数据还是采用数组Array的方式。所以,遍历访问数组的数据,最快的方式是采用数组的索引,相当于从内存中直接读取数据。因此,使用size效率最高。但是,在多线程时需要考虑并发操作的问题。

    2. for-each和Iterator实质是一样的,都是Iterator,for-each只是包装了一下,所以二者的效率是差不多的。但是,使用Iterator中会执行数据锁定,性能稍差。如果在循环过程中去掉某个元素,只能使用iterator.remove()方法,不能使用list.remove()方法,因为会出现并发访问错误。

    public class CompareList {

    public static void main(String[] args) {

    List list = new ArrayList();

    long startTime = 0L, endTime = 0L;

    String temp = null;

    //赋值

    for(int k = 0; k < 1000000; k++){

    list.add("" + k);

    }

    //方法一:使用size()方法

    startTime = System.currentTimeMillis();

    for(int i=0;i

    temp = list.get(i);

    //System.out.println(temp);

    }

    endTime = System.currentTimeMillis();

    System.out.println("使用size,时间为: " + (endTime - startTime) + "mm");

    //方法二:使用Iterator

    Iterator it = list.iterator();

    startTime = System.currentTimeMillis();

    while(it.hasNext()){

    temp = it.next();

    //System.out.println(temp);

    }

    endTime = System.currentTimeMillis();

    System.out.println("使用Iterator,时间为:"+ (endTime - startTime) + "mm");

    //方法三:使用for-each

    startTime = System.currentTimeMillis();

    for(String s : list) {

    temp = s;

    //System.out.println(temp);

    }

    endTime = System.currentTimeMillis();

    System.out.println("使用for-each,时间为:"+ (endTime - startTime) + "mm");

    }

    }

    实验结果:

    使用size,时间为: 12mm

    使用Iterator,时间为:14mm

    使用for-each,时间为:22mm

    多次重复实验,基本都在一个数量级,但是每次都是size最好。

    总结的可能不够好,实验也许不科学,欢迎批评指教!

    展开全文
  • 文本主要向大家分享了java实现遍历树形菜单的实例代码,具体如下。OpenSessionView实现:package org.web;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax....

    文本主要向大家分享了java实现遍历树形菜单的实例代码,具体如下。

    OpenSessionView实现:

    package org.web;

    import java.io.IOException;

    import javax.servlet.Filter;

    import javax.servlet.FilterChain;

    import javax.servlet.FilterConfig;

    import javax.servlet.ServletException;

    import javax.servlet.ServletRequest;

    import javax.servlet.ServletResponse;

    import org.dao.BaseHibernateDao;

    import org.hibernate.Hibernate;

    import org.hibernate.Session;

    import org.hibernate.Transaction;

    public class OpenSessionView extends BaseHibernateDao implements Filter {

    /**(非 Javadoc)

    *

    Title: destroy

    *

    Description(描述):

    * @see javax.servlet.Filter#destroy()

    */

    @Override

    public void destroy() {

    // TODO Auto-generated method stub

    }

    /**(非 Javadoc)

    *

    Title: doFilter

    *

    Description(描述):

    * @param arg0

    * @param arg1

    * @param arg2

    * @throws IOException

    * @throws ServletException

    * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)

    */

    @Override

    public void doFilter(ServletRequest arg0, ServletResponse arg1,

    FilterChain arg2) throws IOException, ServletException {

    Session session = null;

    Transaction tx = null;

    try {

    session = getSession();

    tx = session.beginTransaction();

    arg2.doFilter(arg0, arg1);

    tx.commit();

    }

    catch (Exception e) {

    e.printStackTrace();

    tx.rollback();

    }

    finally{

    closeSession();

    }

    }

    /**(非 Javadoc)

    *

    Title: init

    *

    Description(描述):

    * @param arg0

    * @throws ServletException

    * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)

    */

    @Override

    public void init(FilterConfig arg0) throws ServletException {

    // TODO Auto-generated method stub

    }

    }

    TreeAction实现

    package org.web;

    import net.sf.json.JSONArray;

    import net.sf.json.JSONObject;

    import org.Service.IVoteTreeService;

    import org.Service.impl.VoteTreeServiceImpl;

    import com.alibaba.fastjson.JSON;

    import com.opensymphony.xwork2.ActionSupport;

    public class TreeAction extends ActionSupport {

    private JSONArray treejson;

    private IVoteTreeService voteService = new VoteTreeServiceImpl();

    public String getTree(){

    treejson = voteService.getTreeJson();

    return SUCCESS;

    }

    public JSONArray getTreejson() {

    return treejson;

    }

    public void setTreejson(JSONArray treejson) {

    this.treejson = treejson;

    }

    }

    总结

    以上就是本文关于java实现遍历树形菜单两种实现代码分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:java中变量和常量详解、浅谈java中==以及equals方法的用法、创建并运行一个java线程方法介绍等,如果有什么不足之处,欢迎留下您的宝贵意见,小编会及时回复大家的。感谢朋友们对本站的支持!

    展开全文
  • } } //遍历map int j = 0; Set>> entrys = map.entrySet(); for(Entry> entry:entrys){ //System.out.println("key值:"+entry.getKey()+" value值:"+entry.getValue()); List temp = entry.getValue(); double ...

    JAVA练习:
    青岛某体育场馆有16个观众入口,观众入场时安检门自动进行人脸抓拍,
    识别观众编号,同时进行红外测温,数据上传给“场馆指挥中心“。上传的数据文件包文件名命名规范如下:入场口_门编号_20160506.txt,数据样本:1579298000 1032874 36.8
    一、.5月6日,共有多少名观众通过安检门测温进入体育馆观赛?(人脸识别的正确率、体温测量正确率均为 100%)
    二、一个人一天内有 M 条体温数据,其中有 x 条数据偏离体温 中位值 ≥1.2 度,则认为这 x 条数据是错误的。求有多少条错误数据。(识别人脸的正确率范围为92%~100%,体温测量正确率为 100%。)
    三、一个人一天内有 M 条体温数据,其中有 x 条数据偏离体温 中位值 ≥1.2 度,则认为这 x 条数据是错误的。求以总误检率从低到高,输出安检门入场口:

    import java.io.File;
    import java.io.IOException;
    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Iterator;
    import org.apache.commons.io.FileUtils;

    public class JavaPracticeTest {

    private File dataFile;
    
    public JavaPracticeTest() {}
    
    public static void main(String[] args) throws Exception {
    	JavaPracticeTest JavaPracticeTest = new JavaPracticeTest();
    
    
    	JavaPracticeTest.loadFile("/home/test");
    
    
    	int tongji = JavaPracticeTest.tongjiuser("20160508");
    
    
    
    	int countErrors = JavaPracticeTest.countErrors();
    
    }
    
    
    public void loadFile(String folder) throws IOException {
    	dataFile = new File(folder);
    }
    
    
    public int tongjiuser(String date) {
    	Set<String> set = new HashSet<String>();
    	Collection<File> collect =  FileUtils.listFiles(dataFile, new String[]{"txt"}, true);
    	if(collect == null || collect.isEmpty()) {
    		return -1;
    	}
    	
    	Iterator<File> iter = collect.iterator();
    	while(iter.hasNext()) {
    		File file = iter.next();
    		
    		if(file.getName().contains(date)) {
    			try {
    				List<String> list = FileUtils.readLines(file, "UTF-8");
    				if(list != null && !list.isEmpty())
    				{
    					for(String record:list)
    					{
    						set.add(record.split("\t")[1]);
    					}
    				}
    			}
    			catch(Exception e)
    			{
    				e.printStackTrace();
    			}
    		}
    	}
    	return set.size();
    }
    
    
    public int countErrors() {
    	Collection<File> collect = FileUtils.listFiles(dataFile, new String[]{"txt"}, true);
    	if(collect == null || collect.isEmpty())
    	{
    		return -1;
    	}
    	
    	Map<String,ArrayList<Double>> map = new HashMap<String,ArrayList<Double>>();
    	
    	Iterator<File> iter = collect.iterator();
    	while(iter.hasNext())
    	{
    		File file = iter.next();
    		
    		String[] fileName = file.getName().substring(0,file.getName().lastIndexOf(".")).split("_");
    		
    		try {
    			List<String> list = FileUtils.readLines(file, "UTF-8");
    			if(list != null && !list.isEmpty())
    			{
    				for(String record:list)
    				{
    					if(map.containsKey(record.split("\t")[1]+fileName[2]))
    					{
    						ArrayList<Double> tempList = map.get(record.split("\t")[1]+fileName[2]);
    						tempList.add(Double.valueOf(record.split("\t")[2]));
    						map.put(record.split("\t")[1]+fileName[2],tempList);
    					}
    					else
    					{
    						ArrayList<Double> tempList = new ArrayList<Double>();
    						tempList.add(Double.valueOf(record.split("\t")[2]));
    						map.put(record.split("\t")[1]+fileName[2],tempList);
    					}
    					
    				}
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	//遍历map
    	int j = 0;
    	Set<Entry<String,ArrayList<Double>>> entrys = map.entrySet();
    	for(Entry<String,ArrayList<Double>> entry:entrys){
    		//System.out.println("key值:"+entry.getKey()+" value值:"+entry.getValue());
    		List<Double> temp = entry.getValue();
    		double midNumber = midNum(temp);
    		for(double temprature:temp)
    		{
    			if(sub(temprature,midNumber) >= 1.2)
    			{
    				j++;
    			}
    		}
    	}
    	return j;
    }
    
    
    
    public static double midNum(List<Double> list) {
    	double s = 0;
    
    	Collections.sort(list);
    	int size = list.size();
    	if (size % 2 != 1) {
    		s = (list.get(size / 2 - 1) + list.get(size / 2) + 0.0) / 2;
    
    	} else {
    		s = list.get((size - 1) / 2);
    	}
    	return s;
    }
    
    public static double sub(Double value1, Double value2) {
    	BigDecimal b1 = new BigDecimal(Double.toString(value1));
    	BigDecimal b2 = new BigDecimal(Double.toString(value2));
    	return b1.subtract(b2).doubleValue();
    }
    

    }

    展开全文
  • 然后你可以使用for循环在其中设置文本,如下所示:for(int i=0; i<48; i++){tv[i].setText("your text");}编辑:在您的XML文件中,为所有文本视图提供相同的ID.对于例如tv0,tv1,tv2等初始化一个字符串数组,它将这些...

    像这样初始化它们:

    TextView[] tv = new TextView[48];

    然后你可以使用for循环在其中设置文本,如下所示:

    for(int i=0; i<48; i++)

    {

    tv[i].setText("your text");

    }

    编辑:在您的XML文件中,为所有文本视图提供相同的ID.对于例如tv0,tv1,tv2等

    初始化一个字符串数组,它将这些ID作为字符串.

    String ids[] = new String[48];

    for(int i=0; i<48; i++)

    {

    ids[i] = "tv" + Integer.toString(i);

    }

    现在,要初始化TextView数组,请执行以下操作:

    for(int i=0; i<48; i++)

    {

    int resID = getResources().getIdentifier(ids[i], "id", "your.package.name");

    tv[i] = (TextView) findViewById(resID);

    }

    展开全文
  • 示例代码如下: import java.io.File; public class For_FileName { public static String [] getFileName(String path) { File file = new File(path); String [] fileName = file.list(); ...
  • 高性能遍历文本文件行attilax总结 文件读写有以下几种常用的方法 1 通常io读取2.5s 1 nio读取或许越高的.. 2 NIO通常采用Reactor模式,AIO通常采用Proactor模式 2 Java对BIO、NIO、AIO的支持: 2 BIO、...
  • package jack.joy; import java.io.File;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintStream;import java.io.FileOutputStream;import java.io.FileDescriptor; /
  • 我机器上有个文件夹,里面都是txt文本文件: 遍历方法如下:    File dir = new File("D:/access_log/");  File file[] = dir.listFiles();  for (int i = 0; i  System.out.println(file[i].getA
  • 最近在做文本分析相关的实验,统计词频,情感度量许多数据预处理的工作要用到集合类的遍历,借这个机会也好好复习了一下Java中Map,List的用法。 1. Map的遍历Map这种集合不能直接取出元素,必须要转换成Set,然后...
  • Java 遍历两个MAC地址之间的所有MAC

    千次阅读 2014-02-21 16:57:26
    然而在数据库批量的存储MAC地址时,如果使用解析文本逐行添加的方式,难免会显得操作复杂,而且事先还需生成MAC地址文本。事实上MAC地址是按照十六进制逐一递增的,所以只需要给出一个区间便有可能枚举出所有MAC地址。...
  • 文本主要向大家分享了java实现遍历树形菜单的实例代码,具体如下。OpenSessionView实现:package org.web;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax....
  • 主要介绍了Java的二叉树排序以及遍历文件展示文本格式的文件树,是对二叉树结构学习的两个很好的实践,需要的朋友可以参考下
  • java实习三2代码查重 相似度)递归遍历文件夹,写文本操作。 一、遍历文件夹代码模板 确定文件夹中是否存在给定文件,如果有该文件,控制台输出文件数目和路径。 import java.io.File; public class lll { static...
  • java script遍历表单内容源码

    千次阅读 2007-06-08 20:02:00
    java script遍历表单内容源码,在IE和Firefox下测试通过 var inputs = document.all.tags("INPUT"); //得到所有的input,包含文本输入框,和按钮 var totaltext; for(var i=0; i { if(inputs[i].name == ...
  • 这是我闲着无聊在项目上改的下面是代码截图分别是H5 ,js的 获取选框中的值当然你也可以把 getvalue 改成 getText 来获取选框中选中的文本或者用getData获取你传入值得对象 当然还有其他的一些事件和方法:事件:...
  • 简单来说,在java项目开发中用来存放一些key-value键值对的属性配置且后缀名为.properties的文本文件;主要用来做参数的存储且读写方便。 Java中Properties如何遍历 是时候举个栗子,废话不多说,抄起键盘就是干! ...
  • 通用遍历方法,可用于遍历对象和数组。$().each(),回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。如需退出each循环可使回调函数返回false现有如下两个select计划类别:-所有-新建...
  • 首先,File属于的类:java.io.file类。 斜杠/ 是Java的目录分隔符。 在Windows 中目录的分隔符是反斜杠(\)。 File 对象封装了文件或路径的属性,但是它既不包括创建文件的方法,也不包括从/ 向文件读/ 写数据(称为...
  • 使用java代码实现搜索遍历文本文件并替换文本内容, 支持脚本bat和sh调用.
  • 本文实例讲述了Java编程实现遍历两个MAC地址之间所有MAC的方法。分享给大家供大家参考,具体如下:在对发放的设备进行后台管理时,很多时候会用到设备MAC这个字段,它可以标识唯一一个设备。然而在数据库批量的存储MAC...
  • java文本读取写入数据库

    千次阅读 2019-09-12 16:09:31
    核心思想: ...3.遍历文本的行,每一行存数组。遍历数组,数据库字段对应数组下标进行插入。 代码示例 public class ShjkTest { public static void main(String[] args) { File file = new File("F:...
  • 测试文本: package wy_test_h5; import java.io.File; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.charset.Charset; import hdf.hdf5lib.H5;...
  • 二叉树(从建树、遍历到存储)Java

    千次阅读 多人点赞 2019-10-28 17:46:25
    层次遍历代码功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 400
精华内容 160
关键字:

java遍历文本

java 订阅