数组去重

package main

import "fmt"

func main(){
intSlice := []int{1,5,5,5,5,7,8,6,6, 6}
fmt.Println(intSlice)
uniqueIntSlice := unique(intSlice)
fmt.Println(uniqueIntSlice)
} func unique(intSlice []int) []int{
keys := make(map[int]bool)
uniqueElements := []int{}
for _,entry := range intSlice {
if _, value := keys[entry]; !value{
keys[entry] =true
uniqueElements = append(uniqueElements, entry)
}
}
return uniqueElements
}

查找元素

package main

import (
"fmt"
"sort"
) func main() {
str := []string{"Sandy", "Provo", "St.george", "Salt lake City", "Draper", "South Jordan", "Murray"} // for循环查找
for i, v := range str {
if v == "Sandy" {
fmt.Println(i)
}
} // sort包排序后查找
// StringSlice给[]string添加方法以满足Interface接口,以便排序为递增序列。
sortedList := sort.StringSlice(str)
// 升序
sortedList.Sort()
fmt.Println(sortedList)
index := sortedList.Search("Sandy")
fmt.Println(index)
}

数组降序

package main

import (
"sort"
"fmt"
) func main() {
numbers := []int{1, 5, 3, 6, 2, 10, 8}
// IntSlice给[]int添加方法以满足Interface接口,以便排序为递增序列。
tobeSorted := sort.IntSlice(numbers)
// Reverse包装一个Interface接口并返回一个新的Interface接口,对该接口排序可生成递减序列。
sort.Sort(sort.Reverse(tobeSorted))
fmt.Println(tobeSorted)
}

迭代数组

package main

import "fmt"

func main(){
numbers := []int{1, 5, 3, 6, 2, 10, 8} for index,value := range numbers{
fmt.Printf("Index: %v and Value: %v\n", index, value)
}
}

将map转为数组

package main

import "fmt"

type NameAge struct{
Name string
Age int
} func main(){
var nameAgeSlice []NameAge
nameAges := map[string]int{
"Michael": 30,
"John": 25,
"Jessica": 26,
"Ali": 18,
}
for key, value := range nameAges{
nameAgeSlice = append(nameAgeSlice, NameAge {key, value})
} fmt.Println(nameAgeSlice) }

合并数组

package main

import "fmt"

func main(){
items1 := []int{3,4}
items2 := []int{1,2}
result := append(items1, items2...)
fmt.Println(result)
}

合并map

package main

import "fmt"

func main(){
map1 := map[string]int {
"Michael":10,
"Jessica":20,
"Tarik":33,
"Jon": 22,
}
fmt.Println(map1) map2 := map[string]int {
"Lord":11,
"Of":22,
"The":36,
"Rings": 23,
}
for key, value := range map2{
map1[key] = value
}
fmt.Println(map1)
}

判断map中key是否存在

package main

import "fmt"

func main() {
nameAges := map[string]int{
"Tarik": 32,
"Michael": 30,
"Jon": 25,
"Jessica" : 20,
}
if _, exists := nameAges["Jessica"]; exists{
fmt.Println("Jessica can be found")
}else {
fmt.Println("Jessica cannot be found")
}
}

Go基础编程实践(四)—— 数组和map的更多相关文章

  1. java基础第十四篇之Map

    一,Map集合的特点: *  * 1.Map集合和Collection集合,没有关系 *  * 2.Map集合的元素是成对存在(夫妻关系) *         Collection集合的元素是独立存在 ...

  2. java基础编程——二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  3. Go基础编程实践(十)—— 数据库

    从数据库中读取数据 在http://sqlitebrowser.org/下载sqlite3可视化工具,在本main.go同目录下创建personal.db数据库,创建表如下: package main ...

  4. Go基础编程实践(九)—— 网络编程

    下载网页 package main import ( "io/ioutil" "net/http" "fmt" ) func main() ...

  5. Go基础编程实践(八)—— 系统编程

    捕捉信号 // 运行此程序,控制台将打印"Waiting for signal" // 按Ctrl + C 发送信号以关闭程序,将发生中断 // 随后控制台依次打印"Si ...

  6. Go基础编程实践(七)—— 并发

    同时运行多个函数 观察常规代码和并发代码的输出顺序. // 常规代码,顺序执行,依次输出 package main import ( "fmt" "time" ...

  7. Go基础编程实践(六)—— 文件

    检查文件是否存在 在此程序同目录下创建log.txt文件,以检测. package main import ( "os" "fmt" ) func main() ...

  8. Go基础编程实践(五)—— 错误和日志

    自定义错误类型 Go中可以使用errors.New()创建错误信息,也可以通过创建自定义错误类型来满足需求.error是一个接口类型,所有实现该接口的类型都可以当作一个错误类型. // error类型 ...

  9. Go基础编程实践(三)—— 日期和时间

    日期和时间 package main import ( "fmt" "time" ) func main() { // 获取当前时间 current := ti ...

随机推荐

  1. BZOJ 1801: [Ahoi2009]中国象棋

    题目描述 //每行每列最多放两个,可以讨论第i-1行到第i行的每一种情况 #include<complex> #include<cstdio> using namespace ...

  2. Centos pip 安装uwsgi 报错“fatal error: Python.h: No such file or directory”

    解决方法: 安装python-devel即可,注意,不是python-dev yum -y install python-devel

  3. mac系统InetAddress.getLocalHost().getHostAddress() 很慢

    java.net.InetAddress.getLocalHost() 这个调用在新版的mac os中可能会耗时很久. 解决办法有两种: 1. 就是把本机的hostname 添加到 hosts 中,例 ...

  4. MyBatis(七):mybatis Java API编程实现增、删、改、查的用法

    最近工作中用到了mybatis的Java API方式进行开发,顺便也整理下该功能的用法,接下来会针对基本部分进行学习: 1)Java API处理一对多.多对一的用法: 2)增.删.改.查的用法: 3) ...

  5. 使用kafka-python客户端进行kafka kerberos认证

    之前说过python confluent kafka客户端做kerberos认证的过程,如果使用kafka python客户端的话同样也可以进行kerberos的认证,具体的认证机制这里不再描述,主要 ...

  6. Android仿微信QQ等实现锁屏消息提醒

    demo代码如下: import android.content.Intent; import android.os.Bundle; import android.support.v7.app.App ...

  7. 【原】QuickTime安装时,提示CAB文件"QuickTime.cab"中找不到此文件

    卸载安装程序:apple software updateapple mobile device supportapple 应用程序支持32apple 应用程序支持64 再重新安装quicktime

  8. 浅入深出ETCD之【raft原理】

    前言 这次我们来说说,有关于etcd原理的一些事情.之前我们已经了解到了etcd是一个分布式的k-v存储,那么它究竟是如何保证数据是如何复制到每个节点上面去的呢?又是如何保证在网络分区的情况下能正常工 ...

  9. 使用PyTorch简单实现卷积神经网络模型

    这里我们会用 Python 实现三个简单的卷积神经网络模型:LeNet .AlexNet .VGGNet,首先我们需要了解三大基础数据集:MNIST 数据集.Cifar 数据集和 ImageNet 数 ...

  10. 连接ftp服务器 JDK 1.7

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.F ...