热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我是androidJava的初学者.任何人都可以解释代码

如何解决《我是androidJava的初学者.任何人都可以解释代码》经验,为你挑选了1个好方法。

编写此代码是为了按月对hashmap进行排序,但我无法完全理解.谁能解释一下呢.另外我想知道我是否正在for循环中正确访问hashmap.monthAnalysis是hashmap的名称,month是关键.对不起,我忘了提到我知道它将数据添加到表动态创建行.我的问题是前4行代码.

public void addData1(TableLayout tableLayout, HashMap monthAnalysis) {

    String[] sortedMOnthList= (String[]) monthAnalysis.keySet().toArray();
    Arrays.sort(sortedMonthList);

    for (String month : sortedMonthList) {
        /* Create a TableRow dynamically */
        TableRow tr = new TableRow(this);
        tr.setLayoutParams(new TableLayout.LayoutParams(
                TableLayout.LayoutParams.MATCH_PARENT,
                TableLayout.LayoutParams.WRAP_CONTENT));
        addRowItem(tr, getMonth(month), 1.3f, Typeface.DEFAULT, Color.parseColor("#000000"), Gravity.LEFT);
        addRowItem(tr, Long.toString(monthAnalysis.get(month).credit), 0.9f, Typeface.DEFAULT, Color.parseColor("#000000"), Gravity.RIGHT);
        addRowItem(tr, Long.toString(monthAnalysis.get(month).debit), 1f, Typeface.DEFAULT, Color.parseColor("#000000"), Gravity.RIGHT);
        //addRowItem(tr, convertDate(Long.parseLong(transaction.date)), 1.5f, Typeface.DEFAULT, Color.parseColor("#000000"), Gravity.RIGHT);

        tableLayout.addView(tr, new TableRow.LayoutParams(
                LayoutParams.MATCH_PARENT,
                LayoutParams.WRAP_CONTENT));
    }
}

GhostCat say.. 5

String[] sortedMOnthList= (String[]) monthAnalysis.keySet().toArray();

该映射使用表示Month名称的String对象作为KEYS.上面检索那些键(如Set); 并将其设置为一个字符串数组.

Arrays.sort(sortedMonthList);

该数组现在按字母顺序排序.

for (String month : sortedMonthList) {

然后在新的排序顺序中迭代.这就是全部.

但是,当然,还有一些细微的细节,例如:取决于这些月份名称的实际外观,上述内容根本没有多大意义.你看,如果这些月份名称是"1月","Februrary",......你真的希望"按月分类"会产生"4月","2月","1月"等订单.等等?!

换句话说:这段代码看起来很可疑; 但它确实取决于传入Map 的内容,以确定此代码是否"有些意义"; 或者是"完全虚假".

你必须要理解:字符串只是字符序列.当您从该角度查看这些值时,任何信息(例如"January"应该在"February"前面都会丢失.正如其中一条评论所暗示的,更好的解决方案是使用Enum而不是String; 因为可以编写枚举以遵循特定的顺序(请参阅此处了解如何执行此操作).

当然,如果你想继续使用"原始"字符串而不是枚举,你也可以这样做.那里唯一的先决条件是:你必须真正理解这些字符串的样子.您可以使用自定义Comparator进行排序.当然可以; 当你知道你有12个可以分类的字符串时,你知道它们会是什么样子; 然后你可以写一个比较器,理解这compare("Jan", "Feb")应该导致"Jan"比"Feb""更小".这是可能的,但严重的方向是错误的.

你不会编写程序以"某种方式"获得预期的输出.你不要走弯路; 你不解决症状 ; 你看看问题的根本原因,并解决这个问题!



1> GhostCat say..:
String[] sortedMOnthList= (String[]) monthAnalysis.keySet().toArray();

该映射使用表示Month名称的String对象作为KEYS.上面检索那些键(如Set); 并将其设置为一个字符串数组.

Arrays.sort(sortedMonthList);

该数组现在按字母顺序排序.

for (String month : sortedMonthList) {

然后在新的排序顺序中迭代.这就是全部.

但是,当然,还有一些细微的细节,例如:取决于这些月份名称的实际外观,上述内容根本没有多大意义.你看,如果这些月份名称是"1月","Februrary",......你真的希望"按月分类"会产生"4月","2月","1月"等订单.等等?!

换句话说:这段代码看起来很可疑; 但它确实取决于传入Map 的内容,以确定此代码是否"有些意义"; 或者是"完全虚假".

你必须要理解:字符串只是字符序列.当您从该角度查看这些值时,任何信息(例如"January"应该在"February"前面都会丢失.正如其中一条评论所暗示的,更好的解决方案是使用Enum而不是String; 因为可以编写枚举以遵循特定的顺序(请参阅此处了解如何执行此操作).

当然,如果你想继续使用"原始"字符串而不是枚举,你也可以这样做.那里唯一的先决条件是:你必须真正理解这些字符串的样子.您可以使用自定义Comparator进行排序.当然可以; 当你知道你有12个可以分类的字符串时,你知道它们会是什么样子; 然后你可以写一个比较器,理解这compare("Jan", "Feb")应该导致"Jan"比"Feb""更小".这是可能的,但严重的方向是错误的.

你不会编写程序以"某种方式"获得预期的输出.你不要走弯路; 你不解决症状 ; 你看看问题的根本原因,并解决这个问题!


推荐阅读
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
author-avatar
快乐健康美丽长寿tg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有