# Help porting Java code to Julia

**URL:** <https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [September 1, 2019, 12:16pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262 "2019-09-01T12:16:17Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fuad\_Sami](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fuad_sami/32/16900_2.png) [@Fuad\_Sami](https://discourse.julialang.org/u/Fuad_Sami)\
**Post date:** [September 1, 2019, 12:16pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/1 "2019-09-01T12:16:17Z")

</div>

```julia
## where i wrote java, i need to convert it to julia. 
##can some one tell me how ? thanks 

function MinimumUnique(arr::Vector{T}) where T<:Integer
   map = Dict{T,Int}()
   sum = 0
    for value in arr
      if !haskey(map, value)
        map[value]=1
            sum += value && continue
      end
      while haskey(map, value)
            value++
      end
      if !haskey(map, value)
              map[value]=1
                sum += value
                  println(value) && break
      end
    end
        return sum
end
input = [1 2 2]
println("Total pairs " , MinimumUnique(arr))

```

---

<div class="post-metadata">

**Author:** ![mwolff](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@mwolff](https://discourse.julialang.org/u/mwolff)\
**Post date:** [September 1, 2019, 12:38pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/2 "2019-09-01T12:38:40Z")

</div>

You can look at the documentation about Dict

[https://docs.julialang.org/en/v1/base/collections/#Base.Dict](https://docs.julialang.org/en/v1/base/collections/#Base.Dict)

there is a function name ‘haskey’ that is what you are looking for if you want to know if the key is in the dictionary…

best regards

---

<div class="post-metadata">

**Author:** ![June-6th](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/june-6th/32/6204_2.png) [@June-6th](https://discourse.julialang.org/u/June-6th)\
**Post date:** [September 1, 2019, 12:54pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/3 "2019-09-01T12:54:20Z")

</div>

Use `for value in arr` will be better.

---

<div class="post-metadata">

**Author:** ![Fuad\_Sami](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fuad_sami/32/16900_2.png) [@Fuad\_Sami](https://discourse.julialang.org/u/Fuad_Sami)\
**Post date:** [September 1, 2019, 1:02pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/4 "2019-09-01T13:02:29Z")

</div>

i tried to update all the thing that i consider it was wrong, but know i found some debbuging.

```julia
julia version 1.1.0
error during bootstrap:
LoadError("main.jl", 11, ErrorException("syntax: unexpected \"end\""))
rec_backtrace at /buildworker/worker/package_linux64/build/src/stackwalk.c:94
record_backtrace at /buildworker/worker/package_linux64/build/src/task.c:217 [inlined]
jl_throw at /buildworker/worker/package_linux64/build/src/task.c:417
jl_errorf at /buildworker/worker/package_linux64/build/src/rtutils.c:77
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:722
jl_parse_eval_all at /buildworker/worker/package_linux64/build/src/ast.c:883
jl_load at /buildworker/worker/package_linux64/build/src/toplevel.c:826
exec_program at /gocode/src/github.com/replit/prybar/languages/julia/pry.h:48
runtime.asmcgocall at /usr/lib/go-1.10/src/runtime/asm_amd64.s:688

```

---

<div class="post-metadata">

**Author:** ![Fuad\_Sami](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fuad_sami/32/16900_2.png) [@Fuad\_Sami](https://discourse.julialang.org/u/Fuad_Sami)\
**Post date:** [September 1, 2019, 1:10pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/5 "2019-09-01T13:10:25Z")

</div>

> [@Fuad\_Sami](#):
>
> unexpected

the debbaging said that there is an end that is not excepted, put i not found it

---

<div class="post-metadata">

**Author:** ![mwolff](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@mwolff](https://discourse.julialang.org/u/mwolff)\
**Post date:** [September 1, 2019, 1:18pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/6 "2019-09-01T13:18:07Z")

</div>

This

```julia
sum += value && continue

```

and

```julia
println(value) && break

```

is wrong because sum+=value is not a boolean value.  
The && is like

```julia
if(sum+=value) == true

```

Try

```julia
sum+=value
continue

```

---

<div class="post-metadata">

**Author:** ![Fuad\_Sami](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fuad_sami/32/16900_2.png) [@Fuad\_Sami](https://discourse.julialang.org/u/Fuad_Sami)\
**Post date:** [September 1, 2019, 1:25pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/7 "2019-09-01T13:25:37Z")

</div>

```julia
function MinimumUnique(arr::Vector{T}) where T<:Integer
   map = Dict{T,Int}()
   sum = 0
    for value in arr
      if !haskey(map, value)
        map[value]=1
            sum+=value 
            continue
      end
      while haskey(map, value)
            value++
      end
      if !haskey(map, value)
              map[value]=1
                sum += value
                  println(value)
                  break
      end
    end
        return sum
end
input = [1 2 2]
println("Total pairs " , MinimumUnique(arr))

```

i fix it , its still the same error  
after break or continue should came end ?  
this is ok to write `!haskey(map, value)` - the ! so this is now if the value does not in the map ? thats write ?

---

<div class="post-metadata">

**Author:** ![mwolff](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@mwolff](https://discourse.julialang.org/u/mwolff)\
**Post date:** [September 1, 2019, 1:29pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/8 "2019-09-01T13:29:29Z")

</div>

You wrote

```julia
input = [1 2 2]
println("Total pairs " , MinimumUnique(arr))

```

test it with input and not with arr 🙂

---

<div class="post-metadata">

**Author:** ![mwolff](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@mwolff](https://discourse.julialang.org/u/mwolff)\
**Post date:** [September 1, 2019, 1:54pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/9 "2019-09-01T13:54:05Z")

</div>

After changing some values it should work

```julia
function MinimumUnique(arr::AbstractArray{T}) where {T<:Integer}
   map = Dict{T,Int}()
   sum = 0
   for value in arr

      if !haskey(map, value)
            map[value]=1
            sum+=value
            continue
      end

      while haskey(map, value)
            value+=1
      end

      if !haskey(map, value)
            map[value]=1
            sum += value
            println(value)
            break
      end

    end
    return sum
end
input = [1 2 2]
println("Total pairs " , MinimumUnique(input))

```

---

<div class="post-metadata">

**Author:** ![Fuad\_Sami](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fuad_sami/32/16900_2.png) [@Fuad\_Sami](https://discourse.julialang.org/u/Fuad_Sami)\
**Post date:** [September 1, 2019, 2:02pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/10 "2019-09-01T14:02:46Z")

</div>

> [@mwolff](#):
>
> {T}

```julia
function MinimumUnique(arr::AbstractArray{T}) where T<:Integer
   map = Dict{T,Int}()
   sum = 0
    for value in arr
      if !haskey(map, value)
        map[value]=1
            sum+=value 
          continue
      end
      while haskey(map, value)
            value+=1
      end
      if !haskey(map, value)
              map[value]=1
                sum += value
                continue
      end
    end
  return sum
end
arr = [1 2 2 2]
println("Total pairs " , MinimumUnique(arr))

```

this is working , thank’s a lot

---

<div class="post-metadata">

**Author:** ![mwolff](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@mwolff](https://discourse.julialang.org/u/mwolff)\
**Post date:** [September 1, 2019, 2:12pm UTC](https://discourse.julialang.org/t/help-porting-java-code-to-julia/28262/11 "2019-09-01T14:12:44Z")

</div>

Ok fine 🙂

++ is not working in Julia use +=1 instead

best regards
