小编bra*_*orm的帖子

for循环中matlabplot中的多个图例

以下程序执行正常但只显示一个图例.如何显示所有四个图例?请看附图.

import matplotlib.pyplot as plt
dct = {'list_1' : [1,2,4,3,1],'list_2' : [2,4,5,1,2],'list_3' : [1,1,3,4,6],'list_4' : [1,1,2,2,1]}

xs = [0,1,2,3,4]


for i in [1,2,3,4]:
    plt.plot(xs,dct['list_%s' %i])
    plt.legend(['%s data' %i])

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib legend

7
推荐指数
2
解决办法
2万
查看次数

Joshua Bloch在有效的java中建议如何在Java中使用缓存哈希码?

我有以下来自Joshua Bloch的有效Java代码(第9章,第3章,第49页)

如果类是不可变的并且计算哈希代码的成本很高,您可以考虑在对象中缓存哈希代码,而不是每次请求时重新计算它.如果您认为此类型的大多数对象将用作哈希键,则应在创建实例时计算哈希码.否则,您可能会在第一次调用hashCode时选择懒惰地初始化它(Item 71).目前尚不清楚我们的PhoneNumber类是否值得这样做,只是为了向您展示它是如何完成的:

    // Lazily initialized, cached hashCode
    private volatile int hashCode;  // (See Item 71)
    @Override public int hashCode() {
        int result = hashCode;
        if (result == 0) {
            result = 17;
            result = 31 * result + areaCode;
            result = 31 * result + prefix;
            result = 31 * result + lineNumber;
            hashCode = result;
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是如何缓存(记住hashCode)在这里工作.第一次hashCode()调用方法,没有hashCode将其分配给结果.这个缓存如何工作的简要解释将是伟大的.谢谢

java caching hashcode effective-java

7
推荐指数
1
解决办法
6832
查看次数

如何查看裸存储库中的文件?

我的遥控器上有一个裸存储库.我想查看在编辑器中打开并查看代码的文件.对于列出文件,git ls-files master或git ls-tree master.并且为了查看单个文件,我可以做git show 100644但是如何查看目录中的文件.这是一个例子:

100644 blob 03ec70a7ab513de8d568450dd8fca93987a22da0    .gitignore
100644 blob 75a85b0137fe1ee0c60bda6dcfac78d2d59a1759    README.md
040000 tree 53a58d85bc833575fdfee86058d88a4928c6fe76    templates
Run Code Online (Sandbox Code Playgroud)

如果我做git show 03ec70,它会显示.gitignore文件的内容

如果我做git show 53a58d,它会列出模板文件夹的内容

403.html
404.html
500.html
base.html
Run Code Online (Sandbox Code Playgroud)

但是如何打开单个文件才能看到它们.示例:上述情况中的base.html

git git-bare git-show

7
推荐指数
2
解决办法
3944
查看次数

PIG:ERROR 1000:解析时出错

我在我的机器上安装了Pig 0.12.我跑的时候

darwin$ pig
grunt> ls /data/
hdfs://Nmame:10001/data/pg20417.txt<r 3>    674570
hdfs://Nname:10001/data/pg4300.txt<r 3> 1573150
hdfs:/Nname:10001/data/pg5000.txt<r 3>  1423803
hdfs://Nname:10001/data/weather <dir>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试创建查询时,出现以下错误:

grunt> book = load '/data/pg4300.txt' as (lines:chararray);
2014-06-30 17:40:08,939 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Error during parsing. Encountered " <PATH> "book=load "" at line 2, column 1.
Was expecting one of:
    <EOF> 
    "cat" ...
    "clear" ...
    "fs" ...
    "sh" ...
    "cd" ...
    "cp" ...
    "copyFromLocal" ...
    "copyToLocal" ...
    "dump" ...
    "\\d" ...
    "describe" ...
    "\\de" ...
    "aliases" ...
    "explain" ... …
Run Code Online (Sandbox Code Playgroud)

hadoop apache-pig

7
推荐指数
2
解决办法
1万
查看次数

如何在运行时向@SessionScoped bean提供@RequestScoped bean实例?

我正在阅读JBoss中的这个示例,其中使用@RequestScopedbean备份JSF page来传递用户凭据信息,然后将其保存在@sessionScoped bean.以下是JBoss文档的示例.

@Named @RequestScoped
public class Credentials {
    private String username;
    private String password;
    @NotNull @Length(min=3, max=25)
    public String getUsername() { return username; }
    public void setUsername(String username) { this.username = username; }
    @NotNull @Length(min=6, max=20)
    public String getPassword() { return password; }
    public void setPassword(String password) { this.password = password; }
}
Run Code Online (Sandbox Code Playgroud)

JSF表格:

<h:form>
   <h:panelGrid columns="2" rendered="#{!login.loggedIn}">
      <f:validateBean>
         <h:outputLabel for="username">Username:</h:outputLabel>
         <h:inputText id="username" value="#{credentials.username}"/>
         <h:outputLabel for="password">Password:</h:outputLabel>
         <h:inputSecret id="password" …
Run Code Online (Sandbox Code Playgroud)

jsf ejb java-ee cdi managed-bean

7
推荐指数
1
解决办法
4190
查看次数

在python中的for -loop中创建唯一名称列表

我想在for循环中创建一系列具有唯一名称的列表,并使用索引来创建liste名称.这就是我想要做的

x = [100,2,300,4,75]

for i in x:

  list_i=[]
Run Code Online (Sandbox Code Playgroud)

我想创建空列表,如

lst_100 = [], lst_2 =[] lst_300 = []..
Run Code Online (Sandbox Code Playgroud)

任何帮助?

python for-loop list unique

6
推荐指数
2
解决办法
2万
查看次数

使用Java中的资源尝试时出错

我有这个方法,我正在尝试使用Java SE 7的资源.

private void generateSecretWord(String filename){

        try (FileReader files = new FileReader(filename)){
            Scanner input = new Scanner(files);
            String line = input.nextLine();
            String[] words = line.split(",");
            Collections.shuffle(Arrays.asList(words));
            if (words[0].length()>1){
                secretWord = words[0];
                return;
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        finally {
            if (files!=null) files.close(); 
        }

    }
Run Code Online (Sandbox Code Playgroud)

我在finally块中得到编译错误,files cannot be resolved to a variable 我在文件中引用了文件try with block.为什么我会收到此错误以及如何解决?

谢谢

java finally try-catch-finally try-with-resources

6
推荐指数
2
解决办法
1万
查看次数

深入了解Map中地图阶段的内部工作会减少hadoop中的工作吗?

我正在读Hadoop: The definitive guide 3rd edtition汤姆怀特.它是理解内部的优秀资源Hadoop,尤其是Map-Reduce我感兴趣的内部.

从书中,(页205):

随机和排序

MapReduce保证每个reducer的输入按键排序.系统执行排序的过程 - 将映射输出作为输入传递给Reducer - 称为shuffle.

我从中推断出,在将键发送到reducer之前,它们被排序,表明作业的map阶段的输出被排序.请注意:我不称之为mapper,因为map阶段包括mapper(由程序员编写)和MR框架的内置排序机制.


地图方面

每个map任务都有一个循环内存缓冲区,用于将输出写入.默认情况下,缓冲区为100 MB,可以通过更改io.sort.mb属性来调整大小.当缓冲区的内容达到某个阈值大小(io.sort.spill.per,默认为0.80或80%)时,后台线程将开始将内容溢出到磁盘.在溢出发生时,地图输出将继续写入缓冲区,但如果缓冲区在此期间填满,则地图将阻塞,直到溢出完成.
在写入磁盘之前,线程首先将数据划分为与最终将被发送到的reducer相对应的分区.在每个分区中,后台线程按键执行内存中排序,如果有组合器函数,则在排序输出上运行.运行组合器功能可以实现更紧凑的映射输出,因此可以将更少的数据写入本地磁盘并传输到reducer.

我对上一段的理解是,当映射器生成键值对时,键值对被分区和排序.一个假设的例子:

考虑使用mapper-1进行字数统计:

>mapper-1 contents
partition-1
   xxxx: 2
   yyyy: 3
partition-2
   aaaa: 15
   zzzz: 11
Run Code Online (Sandbox Code Playgroud)

(请注意每个分区数据按键排序,但分区-1的数据和分区2的数据不必按顺序排序)


继续阅读本章:

每次内存缓冲区达到溢出阈值时,都会创建一个新的溢出文件,因此在映射任务写入其最后一个输出记录后,可能会有多个溢出文件.在任务完成之前,溢出文件将合并到单个分区和排序的输出文件中.配置属性io.sort.factor一次控制要合并的最大流数; 默认值为10.

我的理解是(请知道上面的段落中的粗体短语,欺骗了我):在map-task中,有几个文件可能会溢出到磁盘,但它们会合并到一个仍然包含分区并进行排序的文件中.考虑与上面相同的例子:

在单个map-task完成之前,其中间数据可以是:

mapper-1内容

spill 1:             spill 2:           spill 2:
    partition-1         partition-1        partition-1
                          hhhh:5       
       xxxx: 2            xxxx: 3             mmmm: 2
       yyyy: 3            yyyy: 7             yyyy: 9 

    partition-2         partition-2        partition-2
       aaaa: 15           bbbb: 15 …
Run Code Online (Sandbox Code Playgroud)

sorting hadoop mapreduce hadoop2

6
推荐指数
1
解决办法
2506
查看次数

交换方法如何在内存级别的C#中工作?

我是一名Java程序员.我对C#知之甚少.但是从我读过的博客来看,Java只支持pass-by-reference-of-reference,而在C#中,默认值是pass-by-reference-of-reference,但程序员可以根据需要使用pass by reference.

我已经了解了交换功能的工作原理.我想让这个概念清晰是至关重要的,因为它对编程概念非常重要.

C#:

public static void Main()
{
  String ONE = "one"; //1
  ChangeString(ONE);  //2
  Console.WriteLine(ONE); //3

  String ONE = "ONE"; //4
  ChangeString(ref ONE); //5
  Console.WriteLine(ONE); //6
}

private static void ChangeString(String word)
{
  word = "TWO";
}
private static void SeedCounter(ref String word)
{
  word = "TWO";
}
Run Code Online (Sandbox Code Playgroud)
  • 步骤1:one在堆上创建具有值的字符串对象,并将其位置的地址存储在变量中ONE.运行时环境在堆上分配一块内存,并返回指向此内存块开头的指针.此变量ONE存储在堆栈中,该堆栈是指向在内存中定位实际对象的引用指针

  • 第2步:changeString调用方法.指针的副本(或存储器地址位置)被分配给变量字.此变量是方法的本地变量,这意味着当方法调用结束时,它将从堆栈帧中删除,并且超出范围以进行垃圾回收.在方法调用中,变量字被重新分配以指向TWO对象位于内存中的新位置.方法返回

  • 步骤3:应该打印控制台上的打印ONE,因为上一步中更改的只是一个局部变量

  • 步骤4:重新分配变量1以指向对象ONE所在的内存位置.

  • 第5步:changeString调用方法.这个时间参考ONE传递.这意味着本地方法变量word是主范围中变量one 的别名.因此, …

c# java pointers reference

6
推荐指数
1
解决办法
285
查看次数

Spring cloud - 如何获得分布式弹簧应用的重试,负载平衡和断路器的好处

我想在spring-cloud-Eureka支持的微服务应用程序中使用以下功能.

1)负载平衡 - 如果我有一个服务的3个节点,它们之间应该发生负载平衡

2)重试逻辑 - 如果其中一个节点没有响应,则在返回另一个节点之前,应该对某个数字(例如3.应该是可配置的)进行重试.

3)断路器 - 如果由于某些原因,所有3个服务节点都有一些问题访问db并抛出异常或没有响应,电路应该打开,后退方法调用,电路在服务恢复后自动关闭.

看一下Spring-cloud的很多例子,我想通了

1)RestTemplate将帮助选项1.但是当RestTemplate访问一个服务实例并且如果节点失败时,它会尝试其他两个节点吗?

2)Hystix将帮助断路器选项(上面的3).但是如果只有一个节点没有响应,它会在打开电路和调用回退方法之前尝试其他节点.一旦服务恢复,它会自动关闭电路吗?

3)如何使用spring-cloud获得retryLogic?我知道@Retryable注释.但它会在以下情况下有所帮助吗?重试一个节点3次,失败后,在断路器启动前尝试下一个节点3次,最后一个节点3次.

我看到所有这些配置都可以在Spring云中使用.但是要很难理解如何配置所有这些以获得有效的解决方案.

这是一个建议:

@HystrixCommand
@Retryable
public Object doSomething() {
   // use your RestTemplate here
}
Run Code Online (Sandbox Code Playgroud)

但我不完全知道它是否会帮助我解决上面提到的所有细微之处.

我确实看到有一个@FeignClient.但是从这篇博客中我了解到它为HTTP客户端请求提供了高级功能.它是否有助于重试和断路器以及负载平衡一体机?

谢谢

spring-boot spring-cloud netflix-eureka

6
推荐指数
1
解决办法
3730
查看次数